| // Copyright (c) 2015 CtrlC developers |
| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or |
| // http://www.apache.org/licenses/LICENSE-2.0> or the MIT |
| // license <LICENSE-MIT or http://opensource.org/licenses/MIT>, |
| // at your option. All files in the project carrying such |
| // notice may not be copied, modified, or distributed except |
| // according to those terms. |
| |
| use ctrlc; |
| use std::sync::mpsc::channel; |
| |
| fn main() { |
| let (tx, rx) = channel(); |
| |
| ctrlc::set_handler(move || tx.send(()).expect("Could not send signal on channel.")) |
| .expect("Error setting Ctrl-C handler"); |
| |
| println!("Waiting for Ctrl-C..."); |
| rx.recv().expect("Could not receive from channel."); |
| println!("Got it! Exiting..."); |
| } |