diff options
author | jhb <jhb@FreeBSD.org> | 2007-05-14 22:21:58 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2007-05-14 22:21:58 +0000 |
commit | 77d161b46b5af0e16571ad43b660bcafb3bc3039 (patch) | |
tree | b157dbdf4d94b30f7dfc04ac706e1552547a31e8 /sys/nfs4client | |
parent | 2b1170b7f0d8d7f8db62041decf2e8933d65441d (diff) | |
download | FreeBSD-src-77d161b46b5af0e16571ad43b660bcafb3bc3039.zip FreeBSD-src-77d161b46b5af0e16571ad43b660bcafb3bc3039.tar.gz |
Move cpu_exit() earlier in exit1() to close a race between
SIGCHLD/kevent(2) notification of process termination and wait(). Now
we no longer drop locks between sending the notification and marking
the process as a zombie. Previously, if another process attempted to do
a wait() with W_NOHANG after receiving a SIGCHLD or kevent and locked
the process while the exiting thread was in cpu_exit(), then wait() would
fail to find the process, which is quite astonishing to the process
calling wait().
MFC after: 3 days
Diffstat (limited to 'sys/nfs4client')
0 files changed, 0 insertions, 0 deletions