Use the code from 1 to implement the spinlock based on
std::atomic 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...
Use the code from 1 to implement the spinlock based on std::atomic 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: https://github.com/efficient/libcuckoo/issues/146