Page MenuHomeFreeBSD

D28089.id82050.diff
No OneTemporary

D28089.id82050.diff

diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c
--- a/sys/kern/subr_trap.c
+++ b/sys/kern/subr_trap.c
@@ -316,19 +316,17 @@
if (flags & TDF_NEEDSIGCHK || p->p_pendingcnt > 0 ||
!SIGISEMPTY(p->p_siglist)) {
sigfastblock_fetch(td);
+ PROC_LOCK(p);
+ mtx_lock(&p->p_sigacts->ps_mtx);
+ while ((sig = cursig(td)) != 0) {
+ KASSERT(sig >= 0, ("sig %d", sig));
+ postsig(sig);
+ }
+ mtx_unlock(&p->p_sigacts->ps_mtx);
+ PROC_UNLOCK(p);
if ((td->td_pflags & TDP_SIGFASTBLOCK) != 0 &&
- td->td_sigblock_val != 0) {
+ td->td_sigblock_val != 0)
sigfastblock_setpend(td, true);
- } else {
- PROC_LOCK(p);
- mtx_lock(&p->p_sigacts->ps_mtx);
- while ((sig = cursig(td)) != 0) {
- KASSERT(sig >= 0, ("sig %d", sig));
- postsig(sig);
- }
- mtx_unlock(&p->p_sigacts->ps_mtx);
- PROC_UNLOCK(p);
- }
}
/*

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 30, 3:42 AM (8 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17850897
Default Alt Text
D28089.id82050.diff (861 B)

Event Timeline