Function tokio_io_pool::run[][src]

pub fn run<F>(future: F) where
    F: Future<Item = (), Error = ()> + Send + 'static, 

Execute the given future and spawn any child futures onto a newly created I/O thread pool.

This function is used to bootstrap the execution of a Tokio application. It does the following:

  • Start the Tokio I/O pool using a default configuration.
  • Configure Tokio to make any future spawned with tokio::spawn spawn on the pool.
  • Run the given future to completion on the current thread.
  • Block the current thread until the pool becomes idle.

Note that the function will not return immediately once future has completed. Instead it waits for the entire pool to become idle. Note also that the top-level future will be executed with Runtime::block_on, which calls Future::wait, and thus does not provide access to timers, clocks, or other tokio runtime goodies.

Examples

use tokio::net::TcpListener;

let listener = TcpListener::bind(&addr).unwrap();

let server = listener.incoming()
    .map_err(|e| println!("error = {:?}", e))
    .for_each(|socket| {
        tokio::spawn(process(socket))
    });

tokio_io_pool::run(server);