Skip to main content

CompioAdapter

Struct CompioAdapter 

Source
pub struct CompioAdapter { /* private fields */ }
Available on macOS and crate feature compio-compat only.

Methods from Deref<Target = Runtime>§

Source

pub fn driver_type(&self) -> DriverType

The current driver type.

Source

pub fn enter<T, F>(&self, f: F) -> T
where F: FnOnce() -> T,

Set this runtime as current runtime, and perform a function in the current scope.

Source

pub fn run(&self) -> bool

Low level API to control the runtime.

Run the scheduled tasks.

The return value indicates whether there are still tasks in the queue.

Source

pub fn waker(&self) -> Waker

Low level API to control the runtime.

Create a waker that always notifies the runtime when woken.

Source

pub fn block_on<F>(&self, future: F) -> <F as Future>::Output
where F: Future,

Block on the future till it completes.

Source

pub fn spawn<F>(&self, future: F) -> JoinHandle<<F as Future>::Output>
where F: Future + 'static,

Spawns a new asynchronous task, returning a JoinHandle for it.

Spawning a task enables the task to execute concurrently to other tasks. There is no guarantee that a spawned task will execute to completion.

Source

pub fn spawn_blocking<T>( &self, f: impl FnOnce() -> T + Send + 'static, ) -> JoinHandle<T>
where T: Send + 'static,

Spawns a blocking task in a new thread, and wait for it.

The task will not be cancelled even if the future is dropped.

Source

pub fn attach(&self, fd: i32) -> Result<(), Error>

Attach a raw file descriptor/handle/socket to the runtime.

You only need this when authoring your own high-level APIs. High-level resources in this crate are attached automatically.

Source

pub fn submit<T>(&self, op: T) -> Submit<T>
where T: OpCode + 'static,

Submit an operation to the runtime.

You only need this when authoring your own OpCode.

Source

pub fn submit_multi<T>(&self, op: T) -> SubmitMulti<T>
where T: OpCode + 'static,

Submit a multishot operation to the runtime.

You only need this when authoring your own OpCode.

Source

pub fn flush(&self) -> bool

Flush the driver and return whether the driver has been notified.

See Proactor::flush for more details.

Source

pub fn current_timeout(&self) -> Option<Duration>

Low level API to control the runtime.

Get the timeout value to be passed to Proactor::poll.

Source

pub fn poll(&self)

Low level API to control the runtime.

Poll the inner proactor. It is equal to calling Runtime::poll_with with Runtime::current_timeout.

Source

pub fn poll_with(&self, timeout: Option<Duration>)

Low level API to control the runtime.

Poll the inner proactor with a custom timeout.

Source

pub fn buffer_pool(&self) -> Result<BufferPool, Error>

Get buffer pool of the runtime.

This will lazily initialize the pool at the first time it’s accessed, and future access to the pool will be cheap and infallible.

Source

pub fn register_files(&self, fds: &[i32]) -> Result<(), Error>

Register file descriptors for fixed-file operations.

This is only supported on io-uring driver, and will return an Unsupported io error on all other drivers.

Source

pub fn unregister_files(&self) -> Result<(), Error>

Unregister previously registered file descriptors.

This is only supported on io-uring driver, and will return an Unsupported io error on all other drivers.

Source

pub fn register_personality(&self) -> Result<u16, Error>

Register the personality for the runtime.

This is only supported on io-uring driver, and will return an Unsupported io error on all other drivers.

The returned personality can be used with FutureExt::with_personality.

Source

pub fn unregister_personality(&self, personality: u16) -> Result<(), Error>

Unregister the given personality for the runtime.

This is only supported on io-uring driver, and will return an Unsupported io error on all other drivers.

Trait Implementations§

Source§

impl Adapter for CompioAdapter

Source§

fn new(runtime: Runtime) -> Result<Self>

Creates a new adapter with the given runtime.
Source§

async fn wait(&self, timeout: Option<Duration>) -> Result<()>

Waits for the runtime to be ready, with an optional timeout.
Source§

fn clear(&self) -> Result<()>

Clears the runtime’s state after waiting.
Source§

impl Deref for CompioAdapter

Source§

type Target = Runtime

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Drop for CompioAdapter

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. 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> AutoreleaseSafe for T
where T: ?Sized,

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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