summaryrefslogtreecommitdiff
path: root/sys/kern/kern_sig.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2000-11-16 02:16:44 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2000-11-16 02:16:44 +0000
commit20cdcc5b73ca7ca1c78ccaba30cf8dd1b2dd7ec0 (patch)
tree3201c4205341604282c7e12d96fc999cf8686539 /sys/kern/kern_sig.c
parent088638dae45dd9c9d8a66b8b999c8b43636357c9 (diff)
Notes
Diffstat (limited to 'sys/kern/kern_sig.c')
-rw-r--r--sys/kern/kern_sig.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index af7a32fe52db..dcc0ed3e7af9 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -1283,7 +1283,11 @@ issignal(p)
psignal(p->p_pptr, SIGCHLD);
do {
stop(p);
+ DROP_GIANT_NOSWITCH();
+ mtx_enter(&sched_lock, MTX_SPIN);
mi_switch();
+ mtx_exit(&sched_lock, MTX_SPIN);
+ PICKUP_GIANT();
} while (!trace_req(p)
&& p->p_flag & P_TRACED);
@@ -1352,7 +1356,11 @@ issignal(p)
stop(p);
if ((p->p_pptr->p_procsig->ps_flag & PS_NOCLDSTOP) == 0)
psignal(p->p_pptr, SIGCHLD);
+ DROP_GIANT_NOSWITCH();
+ mtx_enter(&sched_lock, MTX_SPIN);
mi_switch();
+ mtx_exit(&sched_lock, MTX_SPIN);
+ PICKUP_GIANT();
break;
} else if (prop & SA_IGNORE) {
/*