blob: 8dff1bc5539ac6b922fbc96b81fb31bad22a9df4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#[cfg(unix)]
mod platform {
use simple_signal::Signal;
use std::io;
pub fn set_shutdown_signal_handler(f: impl Fn() + 'static + Send) -> Result<(), io::Error> {
simple_signal::set_handler(&[Signal::Term, Signal::Int], move |s| {
log::debug!("Process received signal: {:?}", s);
f();
});
Ok(())
}
}
#[cfg(windows)]
mod platform {
#[derive(err_derive::Error, Debug)]
#[error(display = "Unable to attach ctrl-c handler")]
pub struct Error(#[error(source)] ctrlc::Error);
pub fn set_shutdown_signal_handler(f: impl Fn() + 'static + Send) -> Result<(), Error> {
ctrlc::set_handler(move || {
log::debug!("Process received Ctrl-c");
f();
})
.map_err(Error)
}
}
pub use self::platform::*;
|