Lines Matching defs:wn
31 void WaitQueue::ThreadWait(WaitUntilEntry* wn, mutexPrivate* lk, bool legacyMode, CPUEUTask* task)
36 wn->task = task;
38 push_back(wn);
41 std::unique_lock<std::mutex> nl(wn->wl);
43 wn->cv.wait(nl);
48 bool WaitQueue::ThreadWaitUntil(WaitUntilEntry* wn, mutexPrivate* lk,
53 wn->status.store(we_status::INIT, std::memory_order_release);
56 wn->task = task;
58 push_back(wn);
61 std::unique_lock<std::mutex> nl(wn->wl);
63 if (wn->cv.wait_until(nl, tp) == std::cv_status::timeout) {
68 // notify scenarios wn is already pooped
70 // in this case, wn needs to be removed from the linked list
71 if (ret || wn->status.load(std::memory_order_acquire) != we_status::NOTIFING) {
73 remove(wn);
85 ThreadWait(&ctx->wn, lk, LegacyMode(task), task);
128 return ThreadWaitUntil(&ctx->wn, lk, tp, LegacyMode(task), task);