| 15 | std::uint64_t tick = 0; |
| 16 | |
| 17 | void Sleep(std::uint64_t tickNum) |
| 18 | { |
| 19 | std::shared_lock lock{ mutex }; |
| 20 | auto wakeupTick = tick + tickNum; |
| 21 | condVar.wait(lock, [wakeupTick]() { |
| 22 | // Sleep until current tick has exceeded limit. |
| 23 | return tick >= wakeupTick; |
| 24 | }); |
| 25 | } |
| 26 | |
| 27 | void Work(int id, int loopNum, std::uint64_t sleepTick) |
| 28 | { |