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
impl Budget
sourceconst fn initial() -> Budget
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.
sourcepub(super) const fn unconstrained() -> Budget
pub(super) const fn unconstrained() -> Budget
Returns an unconstrained budget. Operations will not be limited.
fn has_remaining(self) -> bool
source§impl Budget
impl Budget
sourcefn decrement(&mut self) -> BudgetDecrement
fn decrement(&mut self) -> BudgetDecrement
Decrements the budget. Returns true
if successful. Decrementing fails
when there is not enough remaining budget.
fn is_unconstrained(self) -> bool
Trait Implementations§
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> 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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)