summaryrefslogtreecommitdiffstats
path: root/src/lib9/ffork-FreeBSD.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-04-30 02:16:28 +0000
committerrsc <devnull@localhost>2004-04-30 02:16:28 +0000
commitb1455f33a8a7b6826fcb0d4b3f4849e322755d28 (patch)
treef6e2e927fd33ad4fb6442744f85759fa761b1220 /src/lib9/ffork-FreeBSD.c
parentbe36ff68854c86247fdc769c0eaa89eb284b5ca7 (diff)
downloadplan9port-b1455f33a8a7b6826fcb0d4b3f4849e322755d28.tar.gz
plan9port-b1455f33a8a7b6826fcb0d4b3f4849e322755d28.zip
Little fixes.
Diffstat (limited to 'src/lib9/ffork-FreeBSD.c')
-rw-r--r--src/lib9/ffork-FreeBSD.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib9/ffork-FreeBSD.c b/src/lib9/ffork-FreeBSD.c
index 3829bb2d..71945edc 100644
--- a/src/lib9/ffork-FreeBSD.c
+++ b/src/lib9/ffork-FreeBSD.c
@@ -4,14 +4,19 @@ extern int __isthreaded;
int
ffork(int flags, void(*fn)(void*), void *arg)
{
+ int pid;
void *p;
+ _p9uproc(0);
__isthreaded = 1;
p = malloc(16384);
if(p == nil)
return -1;
memset(p, 0xFE, 16384);
- return rfork_thread(RFPROC|flags, (char*)p+16000, (int(*)(void*))fn, arg);
+ pid = rfork_thread(RFPROC|flags, (char*)p+16000, (int(*)(void*))fn, arg);
+ if(pid == 0)
+ _p9uproc(0);
+ return pid;
}
/*