struct WaitQueueLockOps

Defined at line 2122 of file ../../zircon/kernel/include/kernel/thread.h

Public Methods

ktl::optional<Thread::UnblockList> LockForWakeAllInQueue (WaitQueue & queue, zx_status_t wait_queue_error)

Attempt to lock one or all threads for waking.

When successful, removes the threads from the wait queue, moving them to a

temporary unblock list and setting their wake result in the process.

Callers may then perform any internal bookkeeping before dropping the queue

lock, and finally waking the threads using Scheduler::Unblock.

Returns std::nullopt in the case that a backoff condition is encountered.

Defined at line 715 of file ../../zircon/kernel/kernel/wait.cc

ktl::optional<Thread::UnblockList> LockForWakeAllInPlace (WaitQueue & queue)

Same as LockForWakeAllInQueue(), but does not dequeue the threads from the wait queue.

Defined at line 692 of file ../../zircon/kernel/kernel/wait.cc

ktl::optional<Thread::UnblockList> LockForWakeOneInPlace (WaitQueue & queue)

Same as LockForWakeAllInPlace(), but only locks the first thread.

Defined at line 731 of file ../../zircon/kernel/kernel/wait.cc