Struct Backoff
pub struct Backoff { pub(in ::sync::mpmc::utils) step: Cell<u32> }
Performs quadratic backoff in spin loops.
Fields
step: Cell<u32>
Implementations
impl Backoff
fn new() -> SelfCreates a new
Backoff.fn spin_light(&self)Backs off using lightweight spinning.
This method should be used for retrying an operation because another thread made progress. i.e. on CAS failure.
fn spin_heavy(&self)Backs off using heavyweight spinning.
This method should be used in blocking loops where parking the thread is not an option.
Auto Trait Implementations
impl !Freeze for Backoff
impl !RefUnwindSafe for Backoff
impl !Sync for Backoff
impl Send for Backoff
impl Unpin for Backoff
impl UnsafeUnpin for Backoff
impl UnwindSafe for Backoff
Blanket Implementations
impl<T> Any for Backoff
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Backoff
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Backoff
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for Backoff
fn from(t: T) -> TReturns the argument unchanged.
impl<T> SizeHint for Backoff
where
T: ?Sized,
fn lower_bound(&self) -> usizefn upper_bound(&self) -> Option<usize>
impl<T> SizedTypeProperties for Backoff
impl<T, U> Into<U> for Backoff
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 Backoff
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 Backoff
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>