diff options
author | mtklein <mtklein@chromium.org> | 2014-06-02 11:26:59 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-06-02 11:26:59 -0700 |
commit | 1b81877880253c75f835eede9a8ee21b9e7b584a (patch) | |
tree | bda959b9910f98cfd9fe857cdf7c962359796542 /tests/OnceTest.cpp | |
parent | 173a5c544be92a09cd8f7eae0e1d50da114e2bc0 (diff) |
Clean up SkOnce:
1 Remove atExit feature: clients can do it just as well as SkOnce can.
2 Remove support for functors: no one but the unit test did that.
3 Remove support for unused non-static SkOnceFlag (no SK_ONCE_INIT).
4 Add SkOnce variants for no-arg functions so we're not forced to pass dummy values all the time.
5 Merge SkSpinlock and SkOnceFlag, making all members private.
6 More notes about memory barriers, adding an acquire load after acquiring the spinlock.
BUG=skia:
R=bungeman@google.com, mtklein@google.com, reed@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/302083003
Diffstat (limited to 'tests/OnceTest.cpp')
-rw-r--r-- | tests/OnceTest.cpp | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/tests/OnceTest.cpp b/tests/OnceTest.cpp index 3a99c39d53..389d257b73 100644 --- a/tests/OnceTest.cpp +++ b/tests/OnceTest.cpp @@ -27,20 +27,6 @@ DEF_TEST(SkOnce_Singlethreaded, r) { REPORTER_ASSERT(r, 5 == x); } -struct AddFour { void operator()(int* x) { *x += 4; } }; - -DEF_TEST(SkOnce_MiscFeatures, r) { - // Tests that we support functors and explicit SkOnceFlags. - int x = 0; - - SkOnceFlag once = SK_ONCE_INIT; - SkOnce(&once, AddFour(), &x); - SkOnce(&once, AddFour(), &x); - SkOnce(&once, AddFour(), &x); - - REPORTER_ASSERT(r, 4 == x); -} - static void add_six(int* x) { *x += 6; } @@ -78,14 +64,13 @@ DEF_TEST(SkOnce_Multithreaded, r) { REPORTER_ASSERT(r, 6 == x); } -// Test that the atExit option works. -static int gToDecrement = 1; -static void noop(int) {} -static void decrement() { gToDecrement--; } -static void checkDecremented() { SkASSERT(gToDecrement == 0); } +static int gX = 0; +static void inc_gX() { gX++; } -DEF_TEST(SkOnce_atExit, r) { - atexit(checkDecremented); +DEF_TEST(SkOnce_NoArg, r) { SK_DECLARE_STATIC_ONCE(once); - SkOnce(&once, noop, 0, decrement); + SkOnce(&once, inc_gX); + SkOnce(&once, inc_gX); + SkOnce(&once, inc_gX); + REPORTER_ASSERT(r, 1 == gX); } |