]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/libthread/main.c
import E script from bell labs
[plan9front.git] / sys / src / libthread / main.c
index 1dcd9c3190da2f9952db53adc4c50f2c08c01947..f9a794d1bad35272b2e7cd3fb065668594100e38 100644 (file)
@@ -31,7 +31,7 @@ main(int argc, char **argv)
        if(setjmp(_mainjmp))
                _schedinit(p);
 
-//_threaddebuglevel = (DBGSCHED|DBGCHAN|DBGREND)^~0;
+       //_threaddebuglevel = (DBGSCHED|DBGCHAN|DBGREND);
        _systhreadinit();
        _qlockinit(_threadrendezvous);
        _sysfatal = _threadsysfatal;
@@ -114,16 +114,16 @@ efork(Execargs *e)
        if(buf[0]=='\0')
                strcpy(buf, "exec failed");
        write(e->fd[1], buf, strlen(buf));
-       close(e->fd[1]);
        _exits(buf);
 }
 
 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: