Struct crossbeam_utils::sync::parker::Unparker
source · pub struct Unparker {
inner: Arc<Inner>,
}
Expand description
Unparks a thread parked by the associated Parker
.
Fields§
§inner: Arc<Inner>
Implementations§
source§impl Unparker
impl Unparker
sourcepub fn unpark(&self)
pub fn unpark(&self)
Atomically makes the token available if it is not already.
This method will wake up the thread blocked on park
or park_timeout
, if there is
any.
§Examples
use std::thread;
use std::time::Duration;
use crossbeam_utils::sync::Parker;
let p = Parker::new();
let u = p.unparker().clone();
thread::spawn(move || {
thread::sleep(Duration::from_millis(500));
u.unpark();
});
// Wakes up when `u.unpark()` provides the token.
p.park();
sourcepub fn into_raw(this: Unparker) -> *const ()
pub fn into_raw(this: Unparker) -> *const ()
Converts an Unparker
into a raw pointer.
§Examples
use crossbeam_utils::sync::{Parker, Unparker};
let p = Parker::new();
let u = p.unparker().clone();
let raw = Unparker::into_raw(u);
sourcepub unsafe fn from_raw(ptr: *const ()) -> Unparker
pub unsafe fn from_raw(ptr: *const ()) -> Unparker
Converts a raw pointer into an Unparker
.
§Safety
This method is safe to use only with pointers returned by Unparker::into_raw
.
§Examples
use crossbeam_utils::sync::{Parker, Unparker};
let p = Parker::new();
let u = p.unparker().clone();
let raw = Unparker::into_raw(u);
let u = unsafe { Unparker::from_raw(raw) };
Trait Implementations§
impl Send for Unparker
impl Sync for Unparker
Auto Trait Implementations§
impl Freeze for Unparker
impl RefUnwindSafe for Unparker
impl Unpin for Unparker
impl UnwindSafe for Unparker
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