diff options
author | jhb <jhb@FreeBSD.org> | 2001-09-06 22:20:41 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2001-09-06 22:20:41 +0000 |
commit | 054237d0bedad367db7ff79d400580da3e2f908f (patch) | |
tree | 81a6a9426eb4bd4704877e5d2c62645d4c91f07e /sys/kern/kern_sig.c | |
parent | fc76d31ce4a861706e4b49312b7a2f88a61bd53d (diff) | |
download | FreeBSD-src-054237d0bedad367db7ff79d400580da3e2f908f.zip FreeBSD-src-054237d0bedad367db7ff79d400580da3e2f908f.tar.gz |
Call sendsig() with the proc lock held and return with it held.
Diffstat (limited to 'sys/kern/kern_sig.c')
-rw-r--r-- | sys/kern/kern_sig.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 16d2463..c64af8f 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -1153,10 +1153,8 @@ trapsignal(p, sig, code) ktrpsig(p->p_tracep, sig, ps->ps_sigact[_SIG_IDX(sig)], &p->p_sigmask, code); #endif - PROC_UNLOCK(p); /* XXX ??? */ (*p->p_sysent->sv_sendsig)(ps->ps_sigact[_SIG_IDX(sig)], sig, &p->p_sigmask, code); - PROC_LOCK(p); SIGSETOR(p->p_sigmask, ps->ps_catchmask[_SIG_IDX(sig)]); if (!SIGISMEMBER(ps->ps_signodefer, sig)) SIGADDSET(p->p_sigmask, sig); @@ -1693,9 +1691,7 @@ postsig(sig) p->p_code = 0; p->p_sig = 0; } - PROC_UNLOCK(p); (*p->p_sysent->sv_sendsig)(action, sig, &returnmask, code); - PROC_LOCK(p); } } |