diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2007-05-08 11:16:32 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2007-05-08 11:16:32 +0000 |
commit | 4f657a2ee6148cfc1f2d3d12f424f7d3ebea8ff5 (patch) | |
tree | 66215566c5becd1c610f1780110c6cd044c8cd2a /sys/kern/subr_prf.c | |
parent | 12d317cd9a85d467c3fe66ff1b061421fc738441 (diff) |
First step in making the SCHED_LOCK not recursive.
- Defer the sending of SIGCHLD and waking the parent when a process goes
to sleep. We set a flag in the process "P_STOPPED" and schedule a
timeout that checks all processes for this flag and sends SIGCHLD
and wakes the parent on those processes that have this flag set.
- Delay the waking of the parent in psignal on SIGCONT until we've
released the SCHED_LOCK at the end.
- In issignal, check for P_SINTR as a way to see we were called from
the tsleep path with SCHED_LOCK locked and don't skip locking
in that case. (This is slightly ugly, but it works until we have
some better way).
miod@ ok (after finding and fixing an MD bug on sgi)
Diffstat (limited to 'sys/kern/subr_prf.c')
0 files changed, 0 insertions, 0 deletions