diff --git a/examples/ctrl-c.rs b/examples/ctrl-c.rs index 16edd592a..6e3a10a55 100644 --- a/examples/ctrl-c.rs +++ b/examples/ctrl-c.rs @@ -2,7 +2,7 @@ extern crate futures; extern crate tokio_core; extern crate tokio_signal; -use futures::stream::Stream; +use futures::{Stream, Future}; use tokio_core::reactor::Core; fn main() { @@ -10,9 +10,13 @@ fn main() { let mut core = Core::new().unwrap(); // tokio_signal provides a convenience builder for Ctrl+C - // this even works cross-platform, linux and windows! - let ctrlc = tokio_signal::ctrl_c(&core.handle()); - let stream = core.run(ctrlc).unwrap(); + // this even works cross-platform: linux and windows! + // + // `fn ctrl_c()` produces a `Future` of the actual stream-initialisation + // the `flatten_stream()` convenience method lazily defers that + // initialisation, allowing us to use it 'as if' it is already the + // stream we want, reducing boilerplate Future-handling. + let stream = tokio_signal::ctrl_c(&core.handle()).flatten_stream(); println!("This program is now waiting for you to press Ctrl+C");