diff options
Diffstat (limited to 'src/libthread/main.c')
-rw-r--r-- | src/libthread/main.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libthread/main.c b/src/libthread/main.c index 1acd8348..06c12935 100644 --- a/src/libthread/main.c +++ b/src/libthread/main.c @@ -1,5 +1,5 @@ -#include "threadimpl.h" #include <signal.h> +#include "threadimpl.h" typedef struct Mainarg Mainarg; struct Mainarg @@ -74,7 +74,13 @@ _threadsignalpasser(void) int _schedfork(Proc *p) { - return ffork(RFMEM|RFNOWAIT, _schedinit, p); + int pid; + lock(&p->lock); + pid = ffork(RFMEM|RFNOWAIT, _schedinit, p); + p->pid = pid; + unlock(&p->lock); + return pid; + } void |