Struct glommio::LocalExecutor
source · pub struct LocalExecutor { /* private fields */ }
Expand description
Single-threaded executor.
The executor can only be run on the thread that created it.
§Examples
use glommio::LocalExecutor;
let local_ex = LocalExecutor::default();
local_ex.run(async {
println!("Hello world!");
});
In many cases, use of LocalExecutorBuilder
will provide more
configuration options and more ergonomic methods. See
LocalExecutorBuilder::spawn
for examples.
Implementations§
source§impl LocalExecutor
impl LocalExecutor
sourcepub fn detect_stalls(
&self,
handler: Option<Box<dyn StallDetectionHandler + 'static>>
) -> Result<(), ()>
pub fn detect_stalls( &self, handler: Option<Box<dyn StallDetectionHandler + 'static>> ) -> Result<(), ()>
Enable or disable task stall detection at runtime
§Examples
use glommio::{DefaultStallDetectionHandler, LocalExecutor};
let local_ex =
LocalExecutor::default().detect_stalls(Some(Box::new(DefaultStallDetectionHandler {})));
sourcepub fn id(&self) -> usize
pub fn id(&self) -> usize
Returns a unique identifier for this Executor.
§Examples
use glommio::LocalExecutor;
let local_ex = LocalExecutor::default();
println!("My ID: {}", local_ex.id());
sourcepub fn remove_task_queue(&self, handle: TaskQueueHandle) -> Result<(), ()>
pub fn remove_task_queue(&self, handle: TaskQueueHandle) -> Result<(), ()>
Removes a task queue.
The task queue cannot be removed if there are still pending tasks.
sourcepub fn run<T>(&self, future: impl Future<Output = T>) -> T
pub fn run<T>(&self, future: impl Future<Output = T>) -> T
Runs the executor until the given future completes.
§Examples
use glommio::{LocalExecutor, Task};
let local_ex = LocalExecutor::default();
let res = local_ex.run(async {
let task = glommio::spawn_local(async { 1 + 2 });
task.await * 2
});
assert_eq!(res, 6);
Trait Implementations§
source§impl Debug for LocalExecutor
impl Debug for LocalExecutor
source§impl Default for LocalExecutor
impl Default for LocalExecutor
Spawns a single-threaded executor with default settings on the current thread.
This will create a executor using default parameters of
LocalExecutorBuilder
, if you want to further customize it, use this API
instead.
§Panics
Panics if creating the executor fails; use LocalExecutorBuilder::make
to
recover from such errors.
§Examples
use glommio::LocalExecutor;
let local_ex = LocalExecutor::default();