Skip to main content

PlanRuntimeResources

Struct PlanRuntimeResources 

Source
pub struct PlanRuntimeResources<R>
where R: DeviceRuntime,
{ /* private fields */ }
Expand description

Unique plan-lifetime owner of the runtime, dynamic pools, maintenance authority, static buffers, capacity claims, and cleanup authority.

Implementations§

Source§

impl<R> PlanRuntimeResources<R>
where R: DeviceRuntime,

Source

pub fn deferred_cleanup_status(&self) -> DeferredDeviceCleanupStatus

Source

pub fn create_execution_lane( &self, ) -> Result<Arc<ExecutionLane<R>>, ExecutionLaneCreationError<R::Error>>

Source

pub fn maintain_deferred_cleanups( &self, maximum_tasks: usize, ) -> Result<DeferredDeviceCleanupMaintenanceReceipt, VNextError>

Attempts each selected cleanup owner at most once. This may block in a backend recovery call and must therefore run on a scheduler recovery thread, never on a request, admission, or destructor path.

Source

pub fn trusted_runtime_binding( self: &Arc<Self>, ) -> Result<TrustedPlanRuntimeBinding<R>, VNextError>

Source

pub fn maintain_for_admission_deferred( self: &Arc<Self>, deferred: &AdmissionDeferred, ) -> Result<DynamicDeferredMaintenanceOutcome, VNextError>

Source

pub fn try_maintain_for_capacity_pressure( self: &Arc<Self>, deferred: &AdmissionDeferred, ) -> Result<Option<DynamicPoolGrowthBatchReceipt>, VNextError>

Attempts currently needed foreground pool growth without reclaiming other pools or increasing execution slots. None means a slot or non-pool blocker is inapplicable. Any receipt, including an empty one, requires a fresh admission probe; it does not reserve the free capacity. Device/pool capacity errors remain typed so the caller can next apply its existing cache-eviction or waiting policy.

Source

pub fn dynamic_pool_status( &self, ) -> Result<DynamicPoolMaintenanceStatus, VNextError>

Returns a point-in-time view of the exact dynamic pools owned by this plan. Product telemetry consumes this instead of maintaining a second allocator ledger that can drift from admission decisions.

Source

pub fn write_dynamic_capacity_availability( &self, out: &mut Vec<CapacityAvailabilityEpoch>, ) -> Result<CapacityEpochs, VNextError>

Source

pub fn register_capacity_waiter( self: &Arc<Self>, observed: &CapacityWaitCondition, ) -> Result<PlanCapacityWaitRegistration<R>, VNextError>

Source

pub fn is_closing(&self) -> bool

Source

pub fn close( resources: Arc<Self>, ) -> Result<PlanRuntimeCloseOutcome<R>, PlanRuntimeCloseFailure<R>>

Source§

impl<R: DeviceRuntime> PlanRuntimeResources<R>

Source

pub fn try_maintain_checkpoint_with_idle_reclaim( self: &Arc<Self>, maintenance: CheckpointCapacityMaintenance<R>, ) -> Result<CheckpointCapacityMaintenanceOutcome, VNextError>

Explicitly permits one idle-chunk reclaim attempt after ordinary checkpoint growth fails at the device budget. All capture target pools remain protected, as do committed occupancy and resident minima. This does not reserve capacity for future, unadmitted foreground work.

The owner must belong to this exact resource root. No sequence is evicted or waited on, and a Ready receipt still requires a fresh claim.

Auto Trait Implementations§

§

impl<R> !Freeze for PlanRuntimeResources<R>

§

impl<R> !RefUnwindSafe for PlanRuntimeResources<R>

§

impl<R> !UnwindSafe for PlanRuntimeResources<R>

§

impl<R> Send for PlanRuntimeResources<R>
where DynamicPoolMaintenanceController<R>: Send, Arc<DynamicPoolSet<R>>: Send, PlanRuntimeStatic<R>: Send, Arc<R>: Send,

§

impl<R> Sync for PlanRuntimeResources<R>
where DynamicPoolMaintenanceController<R>: Sync, Arc<DynamicPoolSet<R>>: Sync, PlanRuntimeStatic<R>: Sync, Arc<R>: Sync,

§

impl<R> Unpin for PlanRuntimeResources<R>
where DynamicPoolMaintenanceController<R>: Unpin, Arc<DynamicPoolSet<R>>: Unpin, PlanRuntimeStatic<R>: Unpin, Arc<R>: Unpin,

§

impl<R> UnsafeUnpin for PlanRuntimeResources<R>
where DynamicPoolMaintenanceController<R>: UnsafeUnpin, Arc<DynamicPoolSet<R>>: UnsafeUnpin, PlanRuntimeStatic<R>: UnsafeUnpin, Arc<R>: UnsafeUnpin,

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> 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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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