| 84 | constexpr __spin_wait() noexcept = default; |
| 85 | |
| 86 | void __wait() noexcept |
| 87 | { |
| 88 | if (__count_++ < __yield_threshold_) |
| 89 | { |
| 90 | STDEXEC::__stok::__pause(); |
| 91 | } |
| 92 | else |
| 93 | { |
| 94 | if (__count_ == 0) // true if __count_ wrapped around |
| 95 | __count_ = __yield_threshold_; |
| 96 | std::this_thread::yield(); |
| 97 | } |
| 98 | } |
| 99 | |
| 100 | private: |
| 101 | static constexpr uint32_t __yield_threshold_ = 20; |
no test coverage detected