use std::mem::zeroed;
use brunch::{benches, Bench};
use libc::{
c_int, getpid, kill, sigaction, sigemptyset, sighandler_t, sigset_t, SIGINT, SIGTERM, SIG_IGN,
};
fn main() {
let pid = unsafe { getpid() };
unsafe {
let mut new_action: sigaction = zeroed();
sigemptyset(&mut new_action.sa_mask as *mut sigset_t);
new_action.sa_sigaction = SIG_IGN as sighandler_t; new_action.sa_flags = 0;
sigaction(SIGINT, &new_action, std::ptr::null_mut());
sigaction(SIGTERM, &new_action, std::ptr::null_mut());
}
benches!(
inline:
Bench::new("SendSignal0").run(|| {
unsafe {
let _ = kill(pid, 0);
}
}),
Bench::new("SendSignalSIGINT").run(|| {
unsafe {
let _ = kill(pid, SIGINT as c_int);
}
}),
Bench::new("SendSignalSIGTERM").run(|| {
unsafe {
let _ = kill(pid, SIGTERM as c_int);
}
}),
);
}