From 6e1c833585a78e534a0b4a7c990faba7d4dcdd45 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Fri, 6 Dec 2013 05:03:35 +0100 Subject: libthread: avoid calling thread waiting for fork/execed process to finish if we dont have to we do not need to wait for fork/execed program to finish when not collecting waitmsg. this reduces the number of rio processes hanging arround for each window shell just waiting for it to terminate and then dumping the waitmsg. --- sys/src/libthread/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sys/src/libthread') 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: -- cgit v1.2.3