blob: 841d2c2d7a18711b1bfc6c71446975b3e252f4dd [file] [log] [blame]
rscf928ea82004-04-21 04:50:23 +00001#include <u.h>
rscc6687d42004-09-21 01:11:28 +00002#include <signal.h>
rscf928ea82004-04-21 04:50:23 +00003#include <libc.h>
4#include "9proc.h"
5#undef fork
6
7int
8p9fork(void)
9{
10 int pid;
rscc6687d42004-09-21 01:11:28 +000011 sigset_t all, old;
rscf928ea82004-04-21 04:50:23 +000012
rscc6687d42004-09-21 01:11:28 +000013 sigfillset(&all);
14 sigprocmask(SIG_SETMASK, &all, &old);
rscf928ea82004-04-21 04:50:23 +000015 pid = fork();
rscc6687d42004-09-21 01:11:28 +000016 if(pid == 0){
17 _clearuproc();
18 _p9uproc(0);
19 }
20 sigprocmask(SIG_SETMASK, &old, nil);
rscf928ea82004-04-21 04:50:23 +000021 return pid;
22}