Skip to main content

AeronIdleStrategyKind

Enum AeronIdleStrategyKind 

Source
pub enum AeronIdleStrategyKind {
    Sleeping,
    Yielding,
    BusySpin,
    NoOp,
    Backoff,
}
Expand description

Aeron’s named idle strategies, as accepted by the context / media-driver set_*_idle_strategy options (the C aeron_idle_strategy_load symbol table).

Strategy parameters are configured separately via set_idle_strategy_init_args:

  • Sleeping: sleep period in nanoseconds (e.g. "1000000" = 1ms)
  • Backoff: maxSpins-maxYields-minParkNs-maxParkNs (e.g. "10-20-1000-1000000")
  • Others: init args ignored

Variants§

§

Sleeping

Sleep when idle ("sleeping"); period from the init args.

§

Yielding

Yield the OS thread when idle ("yield").

§

BusySpin

Busy-spin ("spin") — lowest latency, pins a core.

§

NoOp

Never back off ("noop").

§

Backoff

Spin, then yield, then park with exponential backoff ("backoff") — the default.

Implementations§

Source§

impl AeronIdleStrategyKind

Source

pub const fn name(&self) -> &'static str

The name the C loader expects.

Source

pub const fn name_c(&self) -> &'static CStr

Self::name as a compile-time C string — lets setters pass it straight to the FFI with no runtime allocation.

Source§

impl AeronIdleStrategyKind

Source

pub const fn default_init_args(&self) -> &'static str

Default init args accepted by this strategy’s loader (the C client validates the currently-set init args when the strategy is set, so they must be coherent): sleeping takes a period in ns; backoff takes maxSpins-maxYields-minParkNs-maxParkNs (hyphen-separated); the rest ignore init args.

Source

pub const fn default_init_args_c(&self) -> &'static CStr

Self::default_init_args as a compile-time C string (no runtime allocation).

Trait Implementations§

Source§

impl Clone for AeronIdleStrategyKind

Source§

fn clone(&self) -> AeronIdleStrategyKind

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for AeronIdleStrategyKind

Source§

impl Debug for AeronIdleStrategyKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for AeronIdleStrategyKind

Source§

impl PartialEq for AeronIdleStrategyKind

Source§

fn eq(&self, other: &AeronIdleStrategyKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for AeronIdleStrategyKind

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.