pub struct Runtime<const P: usize = 10, const NUM_SEGS_P2: usize = 8, const BLOCKING_P: usize = 8, const BLOCKING_NUM_SEGS_P2: usize = 5> { /* private fields */ }Implementations§
Source§impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>
impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>
Sourcepub fn spawn<F, T>(&self, future: F) -> Result<JoinHandle<T>, SpawnError>where
F: IntoFuture<Output = T> + Send + 'static,
F::IntoFuture: Future<Output = T> + Send + 'static,
T: Send + 'static,
pub fn spawn<F, T>(&self, future: F) -> Result<JoinHandle<T>, SpawnError>where
F: IntoFuture<Output = T> + Send + 'static,
F::IntoFuture: Future<Output = T> + Send + 'static,
T: Send + 'static,
Spawns an asynchronous task on the executor, returning an awaitable join handle.
This is the primary method for scheduling async work on the executor. The spawned task will be executed by one of the executor’s worker threads.
§Arguments
future: The future to execute. Can be any type that implementsIntoFuture.
§Returns
Ok(JoinHandle<T>): A join handle that implementsFuture<Output = T>Err(SpawnError): Error if spawning fails
§Example
use maniac::runtime::Executor;
let rt = manic::runtime::new_multi_threaded();
let handle = rt.spawn(async {
// Your async code here
42
})?;
// Await the result
// let result = handle.await;Sourcepub fn spawn_blocking<F, T>(
&self,
future: F,
) -> Result<JoinHandle<T>, SpawnError>where
F: IntoFuture<Output = T> + Send + 'static,
F::IntoFuture: Future<Output = T> + Send + 'static,
T: Send + 'static,
pub fn spawn_blocking<F, T>(
&self,
future: F,
) -> Result<JoinHandle<T>, SpawnError>where
F: IntoFuture<Output = T> + Send + 'static,
F::IntoFuture: Future<Output = T> + Send + 'static,
T: Send + 'static,
Spawns a blocking task on the blocking executor, returning an awaitable join handle.
This is the primary method for scheduling async work on the executor. The spawned task will be executed by one of the executor’s worker threads.
§Arguments
future: The future to execute. Can be any type that implementsIntoFuture.
§Returns
Ok(JoinHandle<T>): A join handle that implementsFuture<Output = T>Err(SpawnError): Error if spawning fails
§Example
let handle = executor.spawn(async {
// Your async code here
42
})?;
// Await the result
// let result = handle.await;Auto Trait Implementations§
impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Freeze for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>
impl<const P: usize = 10, const NUM_SEGS_P2: usize = 8, const BLOCKING_P: usize = 8, const BLOCKING_NUM_SEGS_P2: usize = 5> !RefUnwindSafe for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>
impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Send for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>
impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Sync for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>
impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Unpin for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>
impl<const P: usize = 10, const NUM_SEGS_P2: usize = 8, const BLOCKING_P: usize = 8, const BLOCKING_NUM_SEGS_P2: usize = 5> !UnwindSafe for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>
Blanket Implementations§
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