9base

revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log | Files | Refs | README | LICENSE

fork.c (311B)


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