| 11 | { |
| 12 | |
| 13 | std::int64_t YieldingWaitStrategy::waitFor(std::int64_t sequence, |
| 14 | Sequence& /*cursor*/, |
| 15 | ISequence& dependentSequence, |
| 16 | ISequenceBarrier& barrier) |
| 17 | { |
| 18 | std::int64_t availableSequence; |
| 19 | auto counter = m_spinTries; |
| 20 | |
| 21 | while ((availableSequence = dependentSequence.value()) < sequence) |
| 22 | { |
| 23 | counter = applyWaitMethod(barrier, counter); |
| 24 | } |
| 25 | |
| 26 | return availableSequence; |
| 27 | } |
| 28 | |
| 29 | void YieldingWaitStrategy::signalAllWhenBlocking() |
| 30 | { |