skia2/include
mtklein 650f9e9a26 SkOnce: 2 bytes -> 1 byte
This uses the same logic we worked out for SkOncePtr to reduce
the memory footprint of SkOnce from a done byte and lock byte
to a single 3-state byte:

  - NotStarted: no thread has tried to run fn() yet
  - Active:     a thread is running fn()
  - Done:       fn() is complete

Threads which see Done return immediately.
Threads which see NotStarted try to move to Active, run fn(), then move to Done.
Threads which see Active spin until the active thread moves to Done.

This additionally fixes a too-weak memory order bug in SkOncePtr,
and adds a big note to explain.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1904483003

Committed: https://skia.googlesource.com/skia/+/df02d338be8e3c1c50b48a3a9faa582703a39c07

Review URL: https://codereview.chromium.org/1904483003
2016-04-20 13:49:15 -07:00
..
android Move SkBitmapRegionDecoder to include/android and src/android 2015-11-13 06:11:09 -08:00
animator Change SkTime::GetMSecs to double; ensure values stored in SkMSec do not overflow. 2016-03-25 12:59:53 -07:00
c add drawCircle to c api 2016-02-09 13:25:51 -08:00
codec Add SkEncodedInfo to report properties of encoded image data 2016-04-20 11:53:35 -07:00
config SkPDF: Use Pathops clipping 2016-03-31 07:33:57 -07:00
core Begin removing deprecated (and now, unused) ImageFilter code paths 2016-04-20 11:48:36 -07:00
effects Switch SkColorFilterImageFilter over to new onFilterImage interface (again) 2016-04-19 10:21:03 -07:00
gpu Refactor how we store and use samplers in Ganesh 2016-04-20 07:09:46 -07:00
images Delete SkPageFlipper 2016-03-25 10:31:22 -07:00
pathops Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
ports Modernize and trim down SkOnce. 2016-04-18 08:09:11 -07:00
private SkOnce: 2 bytes -> 1 byte 2016-04-20 13:49:15 -07:00
svg move SkTDict and SkTSearch into private 2016-01-03 18:36:05 -08:00
utils Reverse dependency between SkScalar.h and SkFixed.h. 2016-04-07 08:49:31 -07:00
views Move SkGLContext and some GrGLInterface implementations to skgputest module 2016-03-30 18:56:20 -07:00
xml remove unused BML (binary xml) code 2016-04-09 11:09:49 -07:00