| 82 | } |
| 83 | |
| 84 | RingAlg::RingField* RingAlg::PCQueue::Dequeue() { |
| 85 | mutex_lock l(pcq_mu_); |
| 86 | if (deque_.empty()) { |
| 87 | ++waiter_count_; |
| 88 | while (deque_.empty()) { |
| 89 | cv_.wait(l); |
| 90 | } |
| 91 | --waiter_count_; |
| 92 | } |
| 93 | RingField* rf = deque_.front(); |
| 94 | deque_.pop_front(); |
| 95 | return rf; |
| 96 | } |
| 97 | |
| 98 | RingAlg::RingAlg(CollectiveType type, const string& name) |
| 99 | : type_(type), |
no test coverage detected