pub struct SchedulerRelocation<'a, B: SchedulerStreamBackend> { /* private fields */ }Expand description
A scheduler’s streams, relocating one stream’s memory: every stream’s queued tasks run and are flushed first, since a queued task holds the addresses its buffers resolved to.
Trait Implementations§
Source§impl<B> RelocatingStreams for SchedulerRelocation<'_, B>
impl<B> RelocatingStreams for SchedulerRelocation<'_, B>
Source§fn has_outdated(&mut self) -> bool
fn has_outdated(&mut self) -> bool
Whether a growth left pages behind in the relocating stream’s memory:
without any, a relocation has nothing to move and waits on nothing.
Source§fn relocation_need(&mut self) -> RelocationNeed
fn relocation_need(&mut self) -> RelocationNeed
Whether the relocating stream’s memory wants a relocation, before the
bytes the device holds are known.
Source§fn bytes_allocated(&mut self) -> u64
fn bytes_allocated(&mut self) -> u64
The bytes every stream’s memory holds from the device.
Source§fn finish(&mut self)
fn finish(&mut self)
Get every stream’s queued and submitted work done, or leave it to the
CopyQueue to wait for before its first copy.Source§fn relocate_memory(&mut self, reason: RelocationReason)
fn relocate_memory(&mut self, reason: RelocationReason)
Move what the relocating stream’s memory holds on outdated pages.
Source§fn cleanup_memory(&mut self)
fn cleanup_memory(&mut self)
Give back every page the relocating stream’s memory holds and nothing
needs.
Source§fn device_has_outdated(&mut self) -> bool
fn device_has_outdated(&mut self) -> bool
Whether a growth left pages behind in any stream’s memory.
Source§fn relocate_device_memory(&mut self, reason: RelocationReason)
fn relocate_device_memory(&mut self, reason: RelocationReason)
Move what every stream’s memory holds on outdated pages.
Source§fn refuse_while_recording(&mut self) -> Result<(), ServerError>
fn refuse_while_recording(&mut self) -> Result<(), ServerError>
Refuse while any stream records a graph: the pages a recording
touches keep their addresses until it seals, and nothing may wait on
the device under it. Read more
Source§fn reclaim(&mut self) -> Result<(), ServerError>
fn reclaim(&mut self) -> Result<(), ServerError>
Give back everything the relocating stream’s memory holds and nothing
needs: what the outdated pages still hold moves first, while the
current pages keep the room it moves into, then every page left empty
goes back. Read more
Source§fn relocate_when_wanted(&mut self)
fn relocate_when_wanted(&mut self)
Relocate when the memory asks for it: while the device still has a
page to spare, or before the pools run out of page sizes.
Source§fn relocate(&mut self, reason: RelocationReason)
fn relocate(&mut self, reason: RelocationReason)
Relocate for
reason, unless a graph records or nothing is outdated.Source§fn relocate_device(&mut self, reason: RelocationReason)
fn relocate_device(&mut self, reason: RelocationReason)
Relocate every stream’s memory for
reason, unless a graph records or
nothing is outdated anywhere. Read moreAuto Trait Implementations§
impl<'a, B> !RefUnwindSafe for SchedulerRelocation<'a, B>
impl<'a, B> !UnwindSafe for SchedulerRelocation<'a, B>
impl<'a, B> Freeze for SchedulerRelocation<'a, B>where
&'a mut SchedulerMultiStream<B>: Freeze,
impl<'a, B> Send for SchedulerRelocation<'a, B>where
&'a mut SchedulerMultiStream<B>: Send,
impl<'a, B> Sync for SchedulerRelocation<'a, B>where
&'a mut SchedulerMultiStream<B>: Sync,
impl<'a, B> Unpin for SchedulerRelocation<'a, B>where
&'a mut SchedulerMultiStream<B>: Unpin,
impl<'a, B> UnsafeUnpin for SchedulerRelocation<'a, B>where
&'a mut SchedulerMultiStream<B>: UnsafeUnpin,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more