pub(crate) struct Waker {
selectors: Vec<Entry>,
observers: Vec<Entry>,
}
🔬This is a nightly-only experimental API. (
mpmc_channel
#126840)Expand description
A queue of threads blocked on channel operations.
This data structure is used by threads to register blocking operations and get woken up once an operation becomes ready.
Fields§
§selectors: Vec<Entry>
🔬This is a nightly-only experimental API. (
mpmc_channel
#126840)A list of select operations.
observers: Vec<Entry>
🔬This is a nightly-only experimental API. (
mpmc_channel
#126840)A list of operations waiting to be ready.
Implementations§
Source§impl Waker
impl Waker
Sourcepub(crate) fn new() -> Self
🔬This is a nightly-only experimental API. (mpmc_channel
#126840)
pub(crate) fn new() -> Self
mpmc_channel
#126840)Creates a new Waker
.
Sourcepub(crate) fn register(&mut self, oper: Operation, cx: &Context)
🔬This is a nightly-only experimental API. (mpmc_channel
#126840)
pub(crate) fn register(&mut self, oper: Operation, cx: &Context)
mpmc_channel
#126840)Registers a select operation.
Sourcepub(crate) fn register_with_packet(
&mut self,
oper: Operation,
packet: *mut (),
cx: &Context,
)
🔬This is a nightly-only experimental API. (mpmc_channel
#126840)
pub(crate) fn register_with_packet( &mut self, oper: Operation, packet: *mut (), cx: &Context, )
mpmc_channel
#126840)Registers a select operation and a packet.
Sourcepub(crate) fn unregister(&mut self, oper: Operation) -> Option<Entry>
🔬This is a nightly-only experimental API. (mpmc_channel
#126840)
pub(crate) fn unregister(&mut self, oper: Operation) -> Option<Entry>
mpmc_channel
#126840)Unregisters a select operation.
Sourcepub(crate) fn try_select(&mut self) -> Option<Entry>
🔬This is a nightly-only experimental API. (mpmc_channel
#126840)
pub(crate) fn try_select(&mut self) -> Option<Entry>
mpmc_channel
#126840)Attempts to find another thread’s entry, select the operation, and wake it up.
Sourcepub(crate) fn notify(&mut self)
🔬This is a nightly-only experimental API. (mpmc_channel
#126840)
pub(crate) fn notify(&mut self)
mpmc_channel
#126840)Notifies all operations waiting to be ready.
Sourcepub(crate) fn disconnect(&mut self)
🔬This is a nightly-only experimental API. (mpmc_channel
#126840)
pub(crate) fn disconnect(&mut self)
mpmc_channel
#126840)Notifies all registered operations that the channel is disconnected.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Waker
impl RefUnwindSafe for Waker
impl !Send for Waker
impl !Sync for Waker
impl Unpin for Waker
impl UnwindSafe for Waker
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)] const IS_ZST: bool = _
#[doc(hidden)] const IS_ZST: bool = _
🔬This is a nightly-only experimental API. (
sized_type_properties
)Source§#[doc(hidden)] const LAYOUT: Layout = _
#[doc(hidden)] const LAYOUT: Layout = _
🔬This is a nightly-only experimental API. (
sized_type_properties
)Source§#[doc(hidden)] const MAX_SLICE_LEN: usize = _
#[doc(hidden)] const MAX_SLICE_LEN: usize = _
🔬This is a nightly-only experimental API. (
sized_type_properties
)The largest safe length for a
[Self]
. Read more