pub struct AmacBatchExecutor { /* private fields */ }Expand description
The AMAC batch executor.
Groups incoming hostcall requests by kind, decides per-group whether interleaving or sequential dispatch is optimal based on stall telemetry, and produces an execution plan.
Implementations§
Source§impl AmacBatchExecutor
impl AmacBatchExecutor
pub fn new(config: AmacBatchExecutorConfig) -> Self
pub const fn with_telemetry( config: AmacBatchExecutorConfig, telemetry: AmacStallTelemetry, ) -> Self
Sourcepub const fn telemetry(&self) -> &AmacStallTelemetry
pub const fn telemetry(&self) -> &AmacStallTelemetry
Access the current stall telemetry.
Sourcepub const fn telemetry_mut(&mut self) -> &mut AmacStallTelemetry
pub const fn telemetry_mut(&mut self) -> &mut AmacStallTelemetry
Mutable access to telemetry for recording observations.
Sourcepub fn plan_batch(&mut self, requests: Vec<HostcallRequest>) -> AmacBatchPlan
pub fn plan_batch(&mut self, requests: Vec<HostcallRequest>) -> AmacBatchPlan
Group a batch of drained hostcall requests and produce an execution plan.
The plan preserves original request ordering within each group and chooses interleave vs. sequential per group based on telemetry.
Sourcepub fn observe_call(&mut self, elapsed_ns: u64)
pub fn observe_call(&mut self, elapsed_ns: u64)
Record a per-call timing observation for stall detection.
Trait Implementations§
Source§impl Clone for AmacBatchExecutor
impl Clone for AmacBatchExecutor
Source§fn clone(&self) -> AmacBatchExecutor
fn clone(&self) -> AmacBatchExecutor
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AmacBatchExecutor
impl Debug for AmacBatchExecutor
Auto Trait Implementations§
impl Freeze for AmacBatchExecutor
impl RefUnwindSafe for AmacBatchExecutor
impl Send for AmacBatchExecutor
impl Sync for AmacBatchExecutor
impl Unpin for AmacBatchExecutor
impl UnsafeUnpin for AmacBatchExecutor
impl UnwindSafe for AmacBatchExecutor
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().