Lines Matching refs:SigHandler

646 pub enum SigHandler {
672 pub fn new(handler: SigHandler, flags: SaFlags, mask: SigSet) -> SigAction {
673 unsafe fn install_sig(p: *mut libc::sigaction, handler: SigHandler) {
675 SigHandler::SigDfl => libc::SIG_DFL,
676 SigHandler::SigIgn => libc::SIG_IGN,
677 SigHandler::Handler(f) => f as *const extern fn(libc::c_int) as usize,
679 SigHandler::SigAction(f) => f as *const extern fn(libc::c_int, *mut libc::siginfo_t, *mut libc::c_void) as usize,
689 SigHandler::SigAction(_) => (flags | SaFlags::SA_SIGINFO).bits(),
710 pub fn handler(&self) -> SigHandler {
712 libc::SIG_DFL => SigHandler::SigDfl,
713 libc::SIG_IGN => SigHandler::SigIgn,
716 SigHandler::SigAction(
718 // * The SigHandler was created by SigHandler::new, in which
720 // * The SigHandler was created by signal or sigaction, which
728 p => SigHandler::Handler(
730 // * The SigHandler was created by SigHandler::new, in which
732 // * The SigHandler was created by signal or sigaction, which
788 /// # use nix::sys::signal::{self, Signal, SigHandler};
789 /// unsafe { signal::signal(Signal::SIGINT, SigHandler::SigIgn) }.unwrap();
798 /// # use nix::sys::signal::{self, Signal, SigHandler};
809 /// let handler = SigHandler::Handler(handle_sigint);
826 pub unsafe fn signal(signal: Signal, handler: SigHandler) -> Result<SigHandler> {
829 SigHandler::SigDfl => libc::signal(signal, libc::SIG_DFL),
830 SigHandler::SigIgn => libc::signal(signal, libc::SIG_IGN),
831 SigHandler::Handler(handler) => libc::signal(signal, handler as libc::sighandler_t),
833 SigHandler::SigAction(_) => return Err(Errno::ENOTSUP),
837 libc::SIG_DFL => SigHandler::SigDfl,
838 libc::SIG_IGN => SigHandler::SigIgn,
839 p => SigHandler::Handler(
1282 let handler_sig = SigHandler::Handler(test_sigaction_handler);
1302 let handler_act = SigHandler::SigAction(test_sigaction_action);
1306 let action_dfl = SigAction::new(SigHandler::SigDfl, flags, mask);
1307 assert_eq!(action_dfl.handler(), SigHandler::SigDfl);
1309 let action_ign = SigAction::new(SigHandler::SigIgn, flags, mask);
1310 assert_eq!(action_ign.handler(), SigHandler::SigIgn);