Skip to content

Commit 703f3a8

Browse files
committed
sh: fix signal handling
1 parent 73b0609 commit 703f3a8

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

sh/os/signals.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -273,10 +273,11 @@ unsafe fn handle_signal(signal: Signal, handler: libc::sighandler_t) {
273273
let mut empty_sigset: libc::sigset_t = std::mem::zeroed::<libc::sigset_t>();
274274
// never fails
275275
libc::sigemptyset(&mut empty_sigset);
276+
276277
let action = libc::sigaction {
277278
sa_sigaction: handler,
278279
sa_mask: empty_sigset,
279-
sa_flags: 0,
280+
sa_flags: libc::SA_SIGINFO,
280281
sa_restorer: None,
281282
};
282283
let result = libc::sigaction(signal.into(), &action, std::ptr::null_mut());
@@ -294,7 +295,10 @@ pub unsafe fn handle_signal_default(signal: Signal) {
294295
}
295296

296297
pub unsafe fn handle_signal_write_to_signal_buffer(signal: Signal) {
297-
handle_signal(signal, &write_signal_to_buffer as *const _ as libc::size_t)
298+
handle_signal(
299+
signal,
300+
write_signal_to_buffer as *const extern "C" fn(libc::c_int) as libc::sighandler_t,
301+
)
298302
}
299303

300304
#[derive(Clone)]

0 commit comments

Comments
 (0)