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() -> Self

Creates 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) -> T

Returns the argument unchanged.

impl<T> SizeHint for Backoff where T: ?Sized,

fn lower_bound(&self) -> usize
fn upper_bound(&self) -> Option<usize>

impl<T> SizedTypeProperties for Backoff

impl<T, U> Into<U> for Backoff where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses 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>