Module stdcli::prelude::ctrlc
[−]
[src]
Cross platform handling of Ctrl-C signals.
set_handler() allows setting a handler closure which is executed on
Ctrl+C. On Unix, this corresponds to a SIGINT signal. On windows, Ctrl+C corresponds to
CTRL_C_EVENT or CTRL_BREAK_EVENT.
Setting a handler will start a new dedicated signal handling thread where we
execute the handler each time we receive a Ctrl+C signal. There can only be
one handler, you would typically set one at the start of your program.
Example
extern crate ctrlc; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc; fn main() { let running = Arc::new(AtomicBool::new(true)); let r = running.clone(); ctrlc::set_handler(move || { r.store(false, Ordering::SeqCst); }).expect("Error setting Ctrl-C handler"); println!("Waiting for Ctrl-C..."); while running.load(Ordering::SeqCst) {} println!("Got it! Exiting..."); }
Handling SIGTERM
Handling of SIGTERM can be enabled with termination feature. If this is enabled,
the handler specified by set_handler() will be executed for both SIGINT and SIGTERM.
Enums
| Error |
Ctrl-C error. |
Functions
| set_handler |
Register signal handler for Ctrl-C. |