summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/libthread/main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/src/libthread/main.c b/sys/src/libthread/main.c
index 1dcd9c319..03c069c14 100644
--- a/sys/src/libthread/main.c
+++ b/sys/src/libthread/main.c
@@ -121,9 +121,10 @@ efork(Execargs *e)
int
_schedexec(Execargs *e)
{
- int pid;
+ int pid, flag;
- switch(pid = rfork(RFREND|RFNOTEG|RFFDG|RFMEM|RFPROC)){
+ flag = (_threadwaitchan == nil) ? RFNOWAIT : 0;
+ switch(pid = rfork(RFREND|RFNOTEG|RFFDG|RFMEM|RFPROC|flag)){
case 0:
efork(e);
default: