Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WIP: Reducing cache choerency traffic under contention for spinlock
Use the code from [1] to implement the spinlock based on std::atomic<bool> instead of std::atomic_flag. While the former is not necessarily lock-free, it is on the majority of platforms. A static assert is added to catch this on platforms that don't have this - we could potentially use the older implementation on those instead then. WIP because I don't have a good scientific benchmark for this yet. I tested it in our realworld application, and it seems to have slightly reduced the load of the spinlock, but not in a really large way... See also: efficient#146 [1]: https://rigtorp.se/spinlock/
- Loading branch information