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.
Trait Implementations§
impl Eq for Arbiter
Auto Trait Implementations§
impl !RefUnwindSafe for Arbiter
impl !UnwindSafe for Arbiter
impl Freeze for Arbiter
impl Send for Arbiter
impl Sync for Arbiter
impl Unpin for Arbiter
impl UnsafeUnpin for Arbiter
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.