ZXFoundation™ 26h2
Loading...
Searching...
No Matches
zxfoundation.sync.waitqueue.types Module Reference

Data Structures

struct  zxfoundation::sync::waitqueue::wait_entry
 Intrusive wait queue entry — embedded in the waiter's stack frame. More...
struct  zxfoundation::sync::waitqueue::wait_head
 Wait queue — a spinlock-protected list of wait_entry nodes. More...

Enumerations

enum class  wait_flags : u32 { none = 0 , exclusive = 1U << 0 , interruptible = 1U << 1 }
 Per-waiter behavioural flags (bitfield).
enum class  wait_result : u8 { woken = 0 , timeout = 1 , interrupted = 2 }
 Outcome of a wait operation.

Functions

constexpr auto zxfoundation::sync::waitqueue::operator! (wait_flags f) noexcept -> bool
constexpr auto zxfoundation::sync::waitqueue::operator& (wait_flags a, wait_flags b) noexcept -> wait_flags
constexpr auto zxfoundation::sync::waitqueue::operator&= (wait_flags &a, wait_flags b) noexcept -> wait_flags &
auto operator= (const wait_entry &)=delete
auto operator= (wait_entry &&)=delete
auto operator= (const wait_head &)=delete
auto operator= (wait_head &&)=delete
constexpr auto zxfoundation::sync::waitqueue::operator| (wait_flags a, wait_flags b) noexcept -> wait_flags
constexpr auto zxfoundation::sync::waitqueue::operator|= (wait_flags &a, wait_flags b) noexcept -> wait_flags &
constexpr auto zxfoundation::sync::waitqueue::operator~ (wait_flags f) noexcept -> wait_flags
 wait_entry (const wait_entry &)=delete
 wait_entry (wait_entry &&)=delete
 wait_head (const wait_head &)=delete
 wait_head (wait_head &&)=delete

Variables

bool active {false}
 True while linked on a queue.
u32 domain_id {0xFFFFFFFFU}
 Domain that is sleeping.
lib::list_head entries {}
 Linked list of wait_entry nodes.
wait_flags flags {wait_flags::none}
 Per-waiter behavioural flags.
lib::list_node link {}
 Intrusive list linkage.
sync::qspinlock::qspinlock lock {}
 Protects the entry list.
wait_result result {wait_result::woken}
 Set by the waker.

Files

file  zxfoundation/sync/waitqueue.zcomponent/types.cxxm