pub struct CompletionReaper<R: DeviceRuntime> { /* private fields */ }Expand description
Scheduler-owned completion registry. The global map lock only resolves a slot; each fence is queried or waited under its own record lock.
Implementations§
Source§impl<R: DeviceRuntime> CompletionReaper<R>
impl<R: DeviceRuntime> CompletionReaper<R>
pub fn new() -> Arc<Self> ⓘ
pub fn retained_count(&self) -> usize
pub fn quarantined_count(&self) -> usize
Sourcepub fn poll_bounded(
&self,
maximum_slots: usize,
) -> Result<CompletionSweepReceipt, VNextError>
pub fn poll_bounded( &self, maximum_slots: usize, ) -> Result<CompletionSweepReceipt, VNextError>
Polls a bounded scheduler-owned snapshot. This path remains available after every external completion handle has detached.
Sourcepub fn recover_slot_by_draining_lane(
&self,
slot_id: CompletionSlotId,
) -> Result<CompletionRecoveryOutcome, VNextError>
pub fn recover_slot_by_draining_lane( &self, slot_id: CompletionSlotId, ) -> Result<CompletionRecoveryOutcome, VNextError>
Runs the blocking recovery path for an exact slot after an indeterminate observation. A failed drain moves ownership into an auditable, retryable quarantine record instead of releasing or forgetting it.
Sourcepub fn wait_slot_for_recovery(
&self,
slot_id: CompletionSlotId,
) -> Result<CompletionObservation, VNextError>
pub fn wait_slot_for_recovery( &self, slot_id: CompletionSlotId, ) -> Result<CompletionObservation, VNextError>
Performs the blocking exact-fence observation required before lane recovery. Schedulers must call this from an independent recovery worker, never from a request or admission thread.
Trait Implementations§
Source§impl<R: DeviceRuntime> Debug for CompletionReaper<R>
impl<R: DeviceRuntime> Debug for CompletionReaper<R>
Source§impl<R: DeviceRuntime> Drop for CompletionReaper<R>
impl<R: DeviceRuntime> Drop for CompletionReaper<R>
Auto Trait Implementations§
impl<R> !Freeze for CompletionReaper<R>
impl<R> RefUnwindSafe for CompletionReaper<R>where
Mutex<CompletionReaperState<R>>: RefUnwindSafe,
impl<R> Send for CompletionReaper<R>
impl<R> Sync for CompletionReaper<R>
impl<R> Unpin for CompletionReaper<R>
impl<R> UnsafeUnpin for CompletionReaper<R>where
Mutex<CompletionReaperState<R>>: UnsafeUnpin,
impl<R> UnwindSafe for CompletionReaper<R>where
Mutex<CompletionReaperState<R>>: UnwindSafe,
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