mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-09-02 00:00:11 +02:00
Add some missing future::Executor implementations (#563)
This adds an implementation of future::Executor for `executor::DefaultExecutor` and `runtime::current_thread::Handle`.
This commit is contained in:
@@ -2,10 +2,27 @@ extern crate tokio_executor;
|
||||
extern crate futures;
|
||||
|
||||
use tokio_executor::*;
|
||||
use futures::future::lazy;
|
||||
use futures::{Future, future::lazy};
|
||||
|
||||
#[test]
|
||||
fn spawn_out_of_executor_context() {
|
||||
let res = DefaultExecutor::current().spawn(Box::new(lazy(|| Ok(()))));
|
||||
assert!(res.is_err());
|
||||
mod out_of_executor_context {
|
||||
use super::*;
|
||||
|
||||
fn test<F, E>(spawn: F)
|
||||
where
|
||||
F: Fn(Box<Future<Item=(), Error=()> + Send>) -> Result<(), E>,
|
||||
{
|
||||
let res = spawn(Box::new(lazy(|| Ok(()))));
|
||||
assert!(res.is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn spawn() {
|
||||
test(|f| DefaultExecutor::current().spawn(f));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn execute() {
|
||||
use futures::future::Executor as FuturesExecutor;
|
||||
test(|f| DefaultExecutor::current().execute(f));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user