Blame


1 f928ea85 2004-04-21 devnull #include <u.h>
2 c6687d45 2004-09-21 devnull #include <signal.h>
3 f928ea85 2004-04-21 devnull #include <libc.h>
4 f928ea85 2004-04-21 devnull #include "9proc.h"
5 f928ea85 2004-04-21 devnull #undef fork
6 f928ea85 2004-04-21 devnull
7 f928ea85 2004-04-21 devnull int
8 f928ea85 2004-04-21 devnull p9fork(void)
9 f928ea85 2004-04-21 devnull {
10 f928ea85 2004-04-21 devnull int pid;
11 c6687d45 2004-09-21 devnull sigset_t all, old;
12 f928ea85 2004-04-21 devnull
13 c6687d45 2004-09-21 devnull sigfillset(&all);
14 c6687d45 2004-09-21 devnull sigprocmask(SIG_SETMASK, &all, &old);
15 f928ea85 2004-04-21 devnull pid = fork();
16 c6687d45 2004-09-21 devnull if(pid == 0){
17 c6687d45 2004-09-21 devnull _clearuproc();
18 c6687d45 2004-09-21 devnull _p9uproc(0);
19 c6687d45 2004-09-21 devnull }
20 c6687d45 2004-09-21 devnull sigprocmask(SIG_SETMASK, &old, nil);
21 f928ea85 2004-04-21 devnull return pid;
22 f928ea85 2004-04-21 devnull }