diff options
author | rsc <devnull@localhost> | 2004-09-21 01:11:28 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2004-09-21 01:11:28 +0000 |
commit | c6687d4591964cb13df87f55ec4770e778a4a55c (patch) | |
tree | ee669a419904e929ae8ae54fd04c2bb41b5a57b1 /src/lib9/fork.c | |
parent | 3d5e34e146b5ba5c973230abb624ce9126024569 (diff) | |
download | plan9port-c6687d4591964cb13df87f55ec4770e778a4a55c.tar.gz plan9port-c6687d4591964cb13df87f55ec4770e778a4a55c.tar.bz2 plan9port-c6687d4591964cb13df87f55ec4770e778a4a55c.zip |
Continue the pthreads torture.
Diffstat (limited to 'src/lib9/fork.c')
-rw-r--r-- | src/lib9/fork.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib9/fork.c b/src/lib9/fork.c index 4dbff87b..841d2c2d 100644 --- a/src/lib9/fork.c +++ b/src/lib9/fork.c @@ -1,4 +1,5 @@ #include <u.h> +#include <signal.h> #include <libc.h> #include "9proc.h" #undef fork @@ -7,9 +8,15 @@ int p9fork(void) { int pid; + sigset_t all, old; + sigfillset(&all); + sigprocmask(SIG_SETMASK, &all, &old); pid = fork(); - _clearuproc(); - _p9uproc(0); + if(pid == 0){ + _clearuproc(); + _p9uproc(0); + } + sigprocmask(SIG_SETMASK, &old, nil); return pid; } |