be0cb4cbe3
As far as I can interpret how signal delivery should work when the signal is blocked, it should still be sent to the pending queue even if the signal is masked. When the sigmask changes it will be delivered. The original implementation did not add the pending signal action, if stcb->task_state == TSTATE_WAIT_SIG is true. An attempt to patch this was made in #8563 but it is insufficient as it creates an issue when the task is not waiting for a signal, but is in syscall, in this case the signal is incorrectly queued twice. |
||
---|---|---|
.. | ||
Make.defs | ||
sig_action.c | ||
sig_allocpendingsigaction.c | ||
sig_cleanup.c | ||
sig_default.c | ||
sig_deliver.c | ||
sig_dispatch.c | ||
sig_findaction.c | ||
sig_initialize.c | ||
sig_kill.c | ||
sig_lowest.c | ||
sig_nanosleep.c | ||
sig_notification.c | ||
sig_pause.c | ||
sig_pending.c | ||
sig_ppoll.c | ||
sig_procmask.c | ||
sig_pselect.c | ||
sig_queue.c | ||
sig_releasependingsigaction.c | ||
sig_releasependingsignal.c | ||
sig_removependingsignal.c | ||
sig_sleep.c | ||
sig_suspend.c | ||
sig_tgkill.c | ||
sig_timedwait.c | ||
sig_unmaskpendingsignal.c | ||
sig_usleep.c | ||
sig_waitinfo.c | ||
signal.h |