aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/ports/SkAtomics_atomic.h
Commit message (Collapse)AuthorAge
* Extract the spinlock from SkOnce as SkSpinlock.Gravatar mtklein2015-03-30
| | | | | | | | | | | This uses slightly newer APIs from SkAtomics.h to make it a bit more efficient. No public API changes. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1039323002
* SkAtomics: add asserts for valid memory orders.Gravatar mtklein2015-02-09
| | | | | | | | | | | Taken from http://en.cppreference.com/w/cpp/atomic/atomic and https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html, which agree. No public API changes. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/868843003
* Atomics overhaul.Gravatar mtklein2015-02-02
This merges and refactors SkAtomics.h and SkBarriers.h into SkAtomics.h and some ports/ implementations. The major new feature is that we can express memory orders explicitly rather than only through comments. The porting layer is reduced to four template functions: - sk_atomic_load - sk_atomic_store - sk_atomic_fetch_add - sk_atomic_compare_exchange From those four we can reconstruct all our previous sk_atomic_foo. There are three ports: - SkAtomics_std: uses C++11 <atomic>, used with MSVC - SkAtomics_atomic: uses newer GCC/Clang intrinsics, used on not-MSVC where possible - SkAtomics_sync: uses older GCC/Clang intrinsics, used where SkAtomics_atomic not supported No public API changes. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/896553002