Lines Matching defs:we
133 task->wue->cb = ([&](WaitEntry* we) {
134 WaitUntilEntry* wue = static_cast<WaitUntilEntry*>(we);
147 WaitUntilEntry* we = task->wue;
149 push_back(we);
151 if (DelayedWakeup(we->tp, we, we->cb)) {
156 if (!WeTimeoutProc(this, we)) {
174 bool WaitQueue::WeNotifyProc(WaitUntilEntry* we)
176 if (!we->hasWaitTime) {
177 // For wait task without timeout, we will be deleted after the wait task wakes up.
181 WaitEntry* dwe = static_cast<WaitEntry*>(we);
182 if (!DelayedRemove(we->tp, dwe)) {
185 we->status.store(we_status::NOTIFING, std::memory_order_release);
187 while (we->status.load(std::memory_order_acquire) != we_status::TIMEOUT_DONE) {
192 delete we;
209 WaitUntilEntry* we = pop_front();
210 if (we == nullptr) {
215 CPUEUTask* task = we->task;
216 if (ThreadNotifyMode(task) || we->weType == 2) {
217 std::unique_lock<std::mutex> lk(we->wl);
218 we->status.store(we_status::NOTIFING, std::memory_order_release);
221 we->task = nullptr;
224 we->cv.notify_one();
226 if (!WeNotifyProc(we)) {