pub struct Arbiter(/* private fields */);Expand description
An asynchronous execution environment running on one OS thread.
Creating an arbiter starts a thread with its own local event loop. Futures
spawned on that event loop are not required to implement Send.
Implementations§
Source§impl Arbiter
impl Arbiter
Sourcepub fn current() -> Arbiter
pub fn current() -> Arbiter
Returns the arbiter running on the current thread.
§Panics
Panics if no arbiter is running on the current thread.
Sourcepub fn new() -> Arbiter
pub fn new() -> Arbiter
Starts an arbiter on a new thread with an automatically generated name.
Sourcepub fn with_name(name: String) -> Arbiter
pub fn with_name(name: String) -> Arbiter
Starts an arbiter on a new thread with the specified name.
Sourcepub fn is_running(&self) -> bool
pub fn is_running(&self) -> bool
Returns whether the arbiter is running.
Sourcepub fn get_value<T, F>(f: F) -> T
pub fn get_value<T, F>(f: F) -> T
Returns a value from thread-local arbiter storage, inserting it if absent.
If the storage has already been destroyed because the thread is
exiting, the value returned by f is not stored.
Sourcepub fn on_shutdown<F>(f: F)where
F: FnOnce() + 'static,
pub fn on_shutdown<F>(f: F)where
F: FnOnce() + 'static,
Registers a callback to run when the current thread’s arbiter shuts down.
Callbacks run once, in registration order, on the arbiter’s thread when
its stop is requested, by Arbiter::stop() or System::stop(),
while the event loop is still running. An arbiter that ends without a
stop request, such as one driven by
SystemRunner::block_on(), runs them
once its event loop has exited instead. A callback registered by
another callback runs in the same shutdown.
If the thread is exiting and its thread-local storage has already been
destroyed, f is dropped without running.