Struct SyncWaker
pub(crate) struct SyncWaker { pub(in ::sync::mpmc::waker) inner: Mutex<Waker>, pub(in ::sync::mpmc::waker) is_empty: Atomic<bool> }
A waker that can be shared among threads without locking.
This is a simple wrapper around Waker that internally uses a mutex for synchronization.
Fields
inner: Mutex<Waker>The inner
Waker.is_empty: Atomic<bool>trueif the waker is empty.
Implementations
impl SyncWaker
fn new() -> SelfCreates a new
SyncWaker.fn register(&self, oper: Operation, cx: &Context)Registers the current thread with an operation.
fn unregister(&self, oper: Operation) -> Option<Entry>Unregisters an operation previously registered by the current thread.
fn notify(&self)Attempts to find one thread (not the current one), select its operation, and wake it up.
fn disconnect(&self)Notifies all threads that the channel is disconnected.
Trait Implementations
impl Drop for SyncWaker
fn drop(&mut self)
Auto Trait Implementations
impl !Freeze for SyncWaker
impl !Send for SyncWaker
impl !Sync for SyncWaker
impl RefUnwindSafe for SyncWaker
impl Unpin for SyncWaker
impl UnsafeUnpin for SyncWaker
impl UnwindSafe for SyncWaker
Blanket Implementations
impl<T> Any for SyncWaker
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for SyncWaker
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for SyncWaker
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for SyncWaker
fn from(t: T) -> TReturns the argument unchanged.
impl<T> SizeHint for SyncWaker
where
T: ?Sized,
fn lower_bound(&self) -> usizefn upper_bound(&self) -> Option<usize>
impl<T> SizedTypeProperties for SyncWaker
impl<T, U> Into<U> for SyncWaker
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for SyncWaker
where
U: Into<T>,
type Error = Infallible;fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for SyncWaker
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>