underhill_threadpool

Struct ThreadpoolDriver

Source
pub struct ThreadpoolDriver { /* private fields */ }
Expand description

A driver for AffinitizedThreadpool that is targeted at a specific CPU.

Implementations§

Source§

impl ThreadpoolDriver

Source

pub fn target_cpu(&self) -> u32

Returns the target CPU number for this thread.

This may be different from the CPU tasks actually run on if the affinity has not yet been set for the thread.

Source

pub fn is_affinity_set(&self) -> bool

Returns whether this thread’s CPU affinity has been set to the intended CPU.

Source

pub async fn wait_for_affinity(&self)

Waits for the affinity to be set to this thread’s intended CPU. If the CPU was not online when the thread was created, then this will block until the CPU is online and someone calls try_set_affinity.

Source

pub fn set_spawn_notifier(&self, f: impl 'static + Send + FnOnce()) -> bool

Sets a function to be called when the thread gets spawned.

Return false if the thread is already spawned.

Trait Implementations§

Source§

impl Clone for ThreadpoolDriver

Source§

fn clone(&self) -> ThreadpoolDriver

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ThreadpoolDriver

Source§

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

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

impl FdReadyDriver for ThreadpoolDriver

Source§

type FdReady = FdReady<ThreadpoolDriver>

The file descriptor ready type.
Source§

fn new_fd_ready(&self, fd: RawFd) -> Result<Self::FdReady>

Returns a new object for polling file descriptor readiness.
Source§

impl Initiate for ThreadpoolDriver

Source§

fn initiator(&self) -> &IoInitiator

Returns a reference to the initiator to use for IO operations. Read more
Source§

impl Inspect for ThreadpoolDriver

Source§

fn inspect(&self, req: Request<'_>)

Inspects the object.
Source§

impl Spawn for ThreadpoolDriver

Source§

fn scheduler(&self, metadata: &TaskMetadata) -> Arc<dyn Schedule>

Gets a scheduler for a new task.
Source§

fn spawn<T>( &self, name: impl Into<Arc<str>>, fut: impl Future<Output = T> + Send + 'static, ) -> Task<T, TaskMetadata>
where T: 'static + Send, Self: Sized,

Spawns a task.
Source§

impl TimerDriver for ThreadpoolDriver

Source§

type Timer = Timer<ThreadpoolDriver>

The timer type.
Source§

fn new_timer(&self) -> Self::Timer

Returns a new timer.
Source§

impl WaitDriver for ThreadpoolDriver

Source§

type Wait = FdWait<ThreadpoolDriver>

The wait object.
Source§

fn new_wait(&self, fd: RawFd, read_size: usize) -> Result<Self::Wait>

Creates a new wait. 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> CloneToUninit for T
where T: Clone,

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> Driver for T

Source§

fn new_dyn_timer(&self) -> SmallBox<dyn PollTimer, S4>

Returns a new timer.
Source§

fn new_dyn_fd_ready( &self, fd: i32, ) -> Result<SmallBox<dyn PollFdReady, S4>, Error>

Returns a new object for polling file descriptor readiness.
Source§

fn new_dyn_socket_ready( &self, socket: i32, ) -> Result<SmallBox<dyn PollSocketReady, S4>, Error>

Creates a new object for polling socket readiness.
Source§

fn new_dyn_wait( &self, fd: i32, read_size: usize, ) -> Result<SmallBox<dyn PollWait, S4>, Error>

Creates a new wait. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

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> SocketReadyDriver for T
where T: FdReadyDriver,

Source§

type SocketReady = <T as FdReadyDriver>::FdReady

The socket ready type.
Source§

fn new_socket_ready( &self, socket: i32, ) -> Result<<T as SocketReadyDriver>::SocketReady, Error>

Creates a new object for polling socket readiness.
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.
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> SpawnDriver for T
where T: Spawn + Driver,