42 uint32_t current_level =
signal_.load();
43 while (current_level > level) {
Used in parallel insertions in the the IndexedTree. Workers signal to other following workes as they ...
Signal(const Signal &other)
Signal & operator=(const Signal &&other)=delete
Signal(uint32_t initial_level=1)
void signal_level(uint32_t level=0)
Signals that the given level has been passed.
void signal_decrement(uint32_t delta=1)
Signal(const Signal &&other)=delete
std::atomic< uint32_t > signal_
void wait_for_level(uint32_t level=0)
Causes the thread to wait until the required level has been signalled.
Signal & operator=(const Signal &other)