From 787c31040c7e2490ef65db482a735c0c9cbe92e0 Mon Sep 17 00:00:00 2001 From: Matt Green Date: Thu, 15 Dec 2016 09:41:10 -0500 Subject: [PATCH] Remask received signal after re-raising it --- src/signal.rs | 5 +++-- test/print_hi.py | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 test/print_hi.py diff --git a/src/signal.rs b/src/signal.rs index 867a12d..5a8dd47 100644 --- a/src/signal.rs +++ b/src/signal.rs @@ -53,10 +53,11 @@ pub fn install_handler(handler: F) let mut new_mask = SigSet::empty(); new_mask.add(raw_signal); - let _ = new_mask.thread_unblock(); - // Re-raise + // Re-raise with signal unmasked + let _ = new_mask.thread_unblock(); let _ = raise(raw_signal); + let _ = new_mask.thread_block(); } }); } diff --git a/test/print_hi.py b/test/print_hi.py new file mode 100644 index 0000000..31bb6ad --- /dev/null +++ b/test/print_hi.py @@ -0,0 +1,5 @@ +import time + +while True: + print "hi" + time.sleep(1)