FreeBSD Bugzilla – Attachment 182542 Details for
Bug 219228
EINTR on thread with full signal mask.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Do not wake up sleeping thread in reschedule_signals() if the signal is blocked.
1.patch (text/plain), 609 bytes, created by
Konstantin Belousov
on 2017-05-12 10:35:51 UTC
(
hide
)
Description:
Do not wake up sleeping thread in reschedule_signals() if the signal is blocked.
Filename:
MIME Type:
Creator:
Konstantin Belousov
Created:
2017-05-12 10:35:51 UTC
Size:
609 bytes
patch
obsolete
>diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c >index 5dfba379e19..d2596985090 100644 >--- a/sys/kern/kern_sig.c >+++ b/sys/kern/kern_sig.c >@@ -2646,7 +2646,9 @@ reschedule_signals(struct proc *p, sigset_t block, int flags) > signotify(td); > if (!(flags & SIGPROCMASK_PS_LOCKED)) > mtx_lock(&ps->ps_mtx); >- if (p->p_flag & P_TRACED || SIGISMEMBER(ps->ps_sigcatch, sig)) >+ if (p->p_flag & P_TRACED || >+ (SIGISMEMBER(ps->ps_sigcatch, sig) && >+ !SIGISMEMBER(td->td_sigmask, sig))) > tdsigwakeup(td, sig, SIG_CATCH, > (SIGISMEMBER(ps->ps_sigintr, sig) ? EINTR : > ERESTART));
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 219228
:
182523
| 182542