diff options
| -rw-r--r-- | sys/src/libthread/main.c | 5 |
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: |
