Skip to main content

ExecutorConfig

Struct ExecutorConfig 

Source
pub struct ExecutorConfig {
    pub worker_threads: usize,
    pub async_threads: usize,
    pub max_global_queue_size: usize,
    pub local_queue_initial_capacity: usize,
    pub thread_name_prefix: String,
    pub worker_placement: WorkerPlacement,
    pub enable_metrics: bool,
    pub preemption: PreemptionConfig,
    pub memory: MemoryConfig,
    pub cleanup: CleanupConfig,
}
Expand description

Configuration settings for executor behavior and performance characteristics.

This struct encapsulates all tunable parameters that affect executor operation, including thread pool sizes, queue capacities, and various performance optimizations.

Fields§

§worker_threads: usize

Number of worker threads for parallel tasks

§async_threads: usize

Number of threads dedicated to async tasks

§max_global_queue_size: usize

Maximum aggregate size of the workers’ external admission queues.

Executor construction partitions this bound across workers without exceeding it. The value must supply at least two slots per worker.

§local_queue_initial_capacity: usize

Initial slot count for each resizable per-worker local priority queue.

Values below the deque minimum normalize upward. Local queues grow when full; Self::max_global_queue_size is the external admission bound.

§thread_name_prefix: String

Thread name prefix for worker threads

§worker_placement: WorkerPlacement

Whether each worker is confined to one logical processor.

WorkerPlacement::Pinned can fail executor construction; see ExecutorError::WorkerPlacementFailed.

§enable_metrics: bool

Whether to enable metrics collection

§preemption: PreemptionConfig

Task preemption configuration

§memory: MemoryConfig

Memory management configuration

§cleanup: CleanupConfig

Task cleanup configuration

Trait Implementations§

Source§

impl Default for ExecutorConfig

Source§

fn default() -> ExecutorConfig

Returns the “default value” for a type. Read more

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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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