aboutsummaryrefslogtreecommitdiff
path: root/src/libthread/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libthread/main.c')
-rw-r--r--src/libthread/main.c10
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