Struct tokio::runtime::coop::Budget

source ·
pub(crate) struct Budget(Option<u8>);
Expand description

Opaque type tracking the amount of “work” a task may still do before yielding back to the scheduler.

Tuple Fields§

§0: Option<u8>

Implementations§

source§

impl Budget

source

const fn initial() -> Budget

Budget assigned to a task on each poll.

The value itself is chosen somewhat arbitrarily. It needs to be high enough to amortize wakeup and scheduling costs, but low enough that we do not starve other tasks for too long. The value also needs to be high enough that particularly deep tasks are able to do at least some useful work at all.

Note that as more yield points are added in the ecosystem, this value will probably also have to be raised.

source

pub(super) const fn unconstrained() -> Budget

Returns an unconstrained budget. Operations will not be limited.

source

fn has_remaining(self) -> bool

source§

impl Budget

source

fn decrement(&mut self) -> BudgetDecrement

Decrements the budget. Returns true if successful. Decrementing fails when there is not enough remaining budget.

source

fn is_unconstrained(self) -> bool

Trait Implementations§

source§

impl Clone for Budget

source§

fn clone(&self) -> Budget

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Budget

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Copy for Budget

Auto Trait Implementations§

§

impl Freeze for Budget

§

impl RefUnwindSafe for Budget

§

impl Send for Budget

§

impl Sync for Budget

§

impl Unpin for Budget

§

impl UnwindSafe for Budget

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.