23 lines
739 B
Rust
23 lines
739 B
Rust
// 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...");
|
|
}
|