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)