summaryrefslogtreecommitdiff
path: root/src/sys/signal.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/signal.rs')
-rw-r--r--src/sys/signal.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/sys/signal.rs b/src/sys/signal.rs
index d7e9d91d..a5ec9e3c 100644
--- a/src/sys/signal.rs
+++ b/src/sys/signal.rs
@@ -364,10 +364,10 @@ impl SigAction {
pub fn new(handler: SigHandler, flags: SaFlags, mask: SigSet) -> SigAction {
let mut s = unsafe { mem::uninitialized::<libc::sigaction>() };
s.sa_sigaction = match handler {
- SigHandler::SigDfl => unsafe { mem::transmute(libc::SIG_DFL) },
- SigHandler::SigIgn => unsafe { mem::transmute(libc::SIG_IGN) },
- SigHandler::Handler(f) => unsafe { mem::transmute(f) },
- SigHandler::SigAction(f) => unsafe { mem::transmute(f) },
+ SigHandler::SigDfl => libc::SIG_DFL,
+ SigHandler::SigIgn => libc::SIG_IGN,
+ SigHandler::Handler(f) => f as *const extern fn(libc::c_int) as usize,
+ SigHandler::SigAction(f) => f as *const extern fn(libc::c_int, *mut libc::siginfo_t, *mut libc::c_void) as usize,
};
s.sa_flags = match handler {
SigHandler::SigAction(_) => (flags | SA_SIGINFO).bits(),