We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 37e30a8 commit 33ce7d8Copy full SHA for 33ce7d8
include/ipfixprobe/outputPlugin/outputStorage/spinlock.hpp
@@ -16,8 +16,13 @@ class Spinlock {
16
void lock() noexcept
17
{
18
BackoffScheme backoffScheme(20, std::numeric_limits<std::size_t>::max());
19
- while (flag.test(std::memory_order_relaxed)
20
- || flag.test_and_set(std::memory_order_acquire)) {
+ while (true) {
+ while (flag.test(std::memory_order_relaxed)) {
21
+ backoffScheme.backoff();
22
+ }
23
+ if (!flag.test_and_set(std::memory_order_acquire)) {
24
+ return;
25
26
backoffScheme.backoff();
27
}
28
0 commit comments