Blame


1 912fba95 2003-11-24 devnull #define NOPLAN9DEFINES
2 912fba95 2003-11-24 devnull #include <u.h>
3 912fba95 2003-11-24 devnull #include <libc.h>
4 fd04aace 2003-11-23 devnull #include <pthread.h>
5 fd04aace 2003-11-23 devnull
6 fd04aace 2003-11-23 devnull extern int __isthreaded;
7 fd04aace 2003-11-23 devnull int
8 fd04aace 2003-11-23 devnull ffork(int flags, void(*fn)(void*), void *arg)
9 fd04aace 2003-11-23 devnull {
10 fd04aace 2003-11-23 devnull pthread_t tid;
11 fd04aace 2003-11-23 devnull
12 fd04aace 2003-11-23 devnull if(flags != (RFMEM|RFNOWAIT)){
13 fd04aace 2003-11-23 devnull werrstr("ffork unsupported");
14 fd04aace 2003-11-23 devnull return -1;
15 fd04aace 2003-11-23 devnull }
16 fd04aace 2003-11-23 devnull
17 fd04aace 2003-11-23 devnull if(pthread_create(&tid, NULL, (void*(*)(void*))fn, arg) < 0)
18 fd04aace 2003-11-23 devnull return -1;
19 fd04aace 2003-11-23 devnull return (int)tid;
20 fd04aace 2003-11-23 devnull }
21 fd04aace 2003-11-23 devnull
22 fd04aace 2003-11-23 devnull int
23 fd04aace 2003-11-23 devnull getfforkid(void)
24 fd04aace 2003-11-23 devnull {
25 fd04aace 2003-11-23 devnull return (int)pthread_self();
26 fd04aace 2003-11-23 devnull }
27 fd04aace 2003-11-23 devnull