MCPcopy Create free account
hub / github.com/catboost/catboost / Dequeue

Method Dequeue

library/cpp/neh/pipequeue.h:150–164  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

148 }
149
150 inline T* Dequeue(TCont* c) {
151 T* ret = nullptr;
152
153 while (!Q_.Dequeue(&ret)) {
154 AtomicSet(Signaled_, 0);
155 if (!AtomicCas(&SkipWait_, 0, 1)) {
156 if (!S_.Acquire(c)) {
157 break;
158 }
159 }
160 AtomicSet(Signaled_, 1);
161 }
162
163 return ret;
164 }
165
166 template <class TPtr>
167 inline void EnqueueSafe(TPtr req) {

Callers

nothing calls this directly

Calls 4

AtomicSetFunction · 0.50
AtomicCasFunction · 0.50
DequeueMethod · 0.45
AcquireMethod · 0.45

Tested by

no test coverage detected