]> git.lizzy.rs Git - plan9front.git/blob - sys/src/lib9p/rfork.c
Import sources from 2011-03-30 iso image
[plan9front.git] / sys / src / lib9p / rfork.c
1 #include <u.h>
2 #include <libc.h>
3 #include <fcall.h>
4 #include <thread.h>
5 #include <9p.h>
6
7 static void
8 rforker(void (*fn)(void*), void *arg, int flag)
9 {
10         switch(rfork(RFPROC|RFMEM|RFNOWAIT|flag)){
11         case -1:
12                 sysfatal("rfork: %r");
13         default:
14                 return;
15         case 0:
16                 fn(arg);
17                 _exits(0);
18         }
19 }
20
21 void
22 listensrv(Srv *s, char *addr)
23 {
24         _forker = rforker;
25         _listensrv(s, addr);
26 }
27
28 void
29 postmountsrv(Srv *s, char *name, char *mtpt, int flag)
30 {
31         _forker = rforker;
32         _postmountsrv(s, name, mtpt, flag);
33 }
34