pub struct Runtime { /* private fields */ }
rt-current-thread
or rt-full
only.Expand description
Single-threaded runtime provides a way to start reactor and executor on the current thread.
See module level documentation for more details.
Implementations§
Source§impl Runtime
impl Runtime
Sourcepub fn new() -> Result<Runtime>
pub fn new() -> Result<Runtime>
Returns a new runtime initialized with default configuration values.
Sourcepub fn handle(&self) -> Handle
pub fn handle(&self) -> Handle
Get a new handle to spawn futures on the single-threaded Tokio runtime
Different to the runtime itself, the handle can be sent to different threads.
Unlike the tokio
0.1 current_thread::Handle
, this handle can spawn
both futures
0.1 and std::future
tasks.
Sourcepub fn spawn<F>(&mut self, future: F) -> &mut Self
pub fn spawn<F>(&mut self, future: F) -> &mut Self
Spawn a futures
0.1 future onto the single-threaded Tokio runtime.
See module level documentation for more details.
§Examples
use tokio_compat::runtime::current_thread::Runtime;
// Create the runtime
let mut rt = Runtime::new().unwrap();
// Spawn a future onto the runtime
rt.spawn(futures_01::future::lazy(|| {
println!("now running on a worker thread");
Ok(())
}));
Sourcepub fn spawn_std<F>(&mut self, future: F) -> &mut Self
pub fn spawn_std<F>(&mut self, future: F) -> &mut Self
Spawn a std::future
future onto the single-threaded Tokio runtime.
See module level documentation for more details.
§Examples
use tokio_compat::runtime::current_thread::Runtime;
// Create the runtime
let mut rt = Runtime::new().unwrap();
// Spawn a future onto the runtime
rt.spawn_std(async {
println!("now running on a worker thread");
});
Sourcepub fn block_on<F>(&mut self, f: F) -> Result<F::Item, F::Error>where
F: Future01,
pub fn block_on<F>(&mut self, f: F) -> Result<F::Item, F::Error>where
F: Future01,
Runs the provided futures
0.1 future, blocking the current thread
until the future completes.
This function can be used to synchronously block the current thread
until the provided future
has resolved either successfully or with an
error. The result of the future is then returned from this function
call.
Note that this function will also execute any spawned futures on the
current thread, but will not block until these other spawned futures
have completed. Once the function returns, any uncompleted futures
remain pending in the Runtime
instance. These futures will not run
until block_on
or run
is called again.
The caller is responsible for ensuring that other spawned futures
complete execution by calling block_on
or run
.
Sourcepub fn block_on_std<F>(&mut self, f: F) -> F::Outputwhere
F: Future,
pub fn block_on_std<F>(&mut self, f: F) -> F::Outputwhere
F: Future,
Runs the provided std::future
future, blocking the current thread
until the future completes.
This function can be used to synchronously block the current thread
until the provided future
has resolved either successfully or with an
error. The result of the future is then returned from this function
call.
Note that this function will also execute any spawned futures on the
current thread, but will not block until these other spawned futures
have completed. Once the function returns, any uncompleted futures
remain pending in the Runtime
instance. These futures will not run
until block_on
or run
is called again.
The caller is responsible for ensuring that other spawned futures
complete execution by calling block_on
or run
.