Skip to main content

Scheduler

Struct Scheduler 

Source
pub struct Scheduler { /* private fields */ }

Implementations§

Source§

impl Scheduler

Source

pub fn from_ranges(ranges: &[RangeRecord]) -> Self

Build from persisted ranges. Completed ranges stay completed; anything else becomes pending from its durable prefix — including ranges left in downloading by a process that died (PRD §12 step 4).

Source

pub fn acquire(&self) -> Option<(Lease, Option<Split>)>

Claim work: a pending range if one exists, otherwise steal the tail of the slowest active range. None means “nothing to do right now”.

Source

pub fn complete(&self, idx: u64)

Mark a lease finished. Idempotent.

Source

pub fn release(&self, idx: u64)

Release a lease without completing it. The range keeps its durable prefix and goes back in the queue, so one worker’s failure costs only that range (PRD Invariant 6).

Source

pub fn fail(&self, idx: u64)

Give up on a range permanently. The download as a whole fails, but we keep every other range’s progress.

Source

pub fn set_end(&self, idx: u64, end: u64)

When a range’s real length turns out to differ from the plan — an open-ended sequential transfer that just ended — record the true end.

Source

pub fn is_finished(&self) -> bool

Source

pub fn has_failure(&self) -> bool

Source

pub fn is_drained(&self) -> bool

True when no work is available and none will become available — every range is either complete or failed.

Source

pub async fn wait_for_change(&self, timeout: Duration)

Source

pub fn notify(&self)

Source

pub fn snapshot(&self) -> Vec<RangeRecord>

Current view of every range, for the committer and for progress.

Source

pub fn counts(&self) -> (usize, usize)

Source

pub fn written_bytes(&self) -> u64

Sum of every range’s written prefix — the engine’s view of “downloaded”.

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more