mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
If a thread in critical region got a synchronous signal, according current
signal handling mode, there is no chance to handle the signal, something must be wrong in the library, just call kse_thr_interrupt to dump its core. I have the code for a long time, but forgot to commit it.
This commit is contained in:
parent
f8206c33ec
commit
0e17930dd7
2 changed files with 4 additions and 0 deletions
|
|
@ -1568,6 +1568,8 @@ kse_check_completed(struct kse *kse)
|
|||
!= 0) {
|
||||
if (SIGISMEMBER(thread->sigmask, sig))
|
||||
SIGADDSET(thread->sigpend, sig);
|
||||
else if (THR_IN_CRITICAL(thread))
|
||||
kse_thr_interrupt(NULL, KSE_INTR_SIGEXIT, sig);
|
||||
else
|
||||
(void)_thr_sig_add(thread, sig,
|
||||
&thread->tcb->tcb_tmbx.tm_syncsig);
|
||||
|
|
|
|||
|
|
@ -1568,6 +1568,8 @@ kse_check_completed(struct kse *kse)
|
|||
!= 0) {
|
||||
if (SIGISMEMBER(thread->sigmask, sig))
|
||||
SIGADDSET(thread->sigpend, sig);
|
||||
else if (THR_IN_CRITICAL(thread))
|
||||
kse_thr_interrupt(NULL, KSE_INTR_SIGEXIT, sig);
|
||||
else
|
||||
(void)_thr_sig_add(thread, sig,
|
||||
&thread->tcb->tcb_tmbx.tm_syncsig);
|
||||
|
|
|
|||
Loading…
Reference in a new issue