sigsuspend() would previously wake up correctly when a matching signal was
received, but if the signal was in the thread's signal block mask, it would not be handled. Added thread::sig_temp_enabled, an additional mask of not blocked signals, which is set by sigsuspend() and evaluated and reset by handle_signals(). Fixes #5567. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35836 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -252,6 +252,7 @@ struct thread {
|
||||
|
||||
sigset_t sig_pending;
|
||||
sigset_t sig_block_mask;
|
||||
sigset_t sig_temp_enabled;
|
||||
struct sigaction sig_action[32];
|
||||
addr_t signal_stack_base;
|
||||
size_t signal_stack_size;
|
||||
|
||||
Reference in New Issue
Block a user