From mboxrd@z Thu Jan 1 00:00:00 1970 From: erik quanstrom Date: Wed, 25 Apr 2012 15:46:46 -0400 To: 9fans@9fans.net Message-ID: <16d20c29be00a62eacb3dba96a700922@brasstown.quanstro.net> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: [9fans] what am i missing Topicbox-Message-UUID: 7e543c16-ead7-11e9-9d60-3106f5b1d025 i just modified _schedexecwait to not eat wait messages. i think that if you're asynchronously procexecing() and waiting for wait messages, some could have been lost. have i missed something? this seems too basic. - erik --- void _schedexecwait(void) { int pid; Channel *c; Proc *p; Thread *t; Waitmsg *w; p = _threadgetproc(); t = p->thread; pid = t->ret; _threaddebug(DBGEXEC, "_schedexecwait %d", t->ret); rfork(RFCFDG); for(;;){ w = wait(); if(w == nil) break; if(w->pid == pid) break; ++ if((c = _threadwaitchan) != nil) ++ sendp(c, w); ++ else free(w); } if(w != nil){ if((c = _threadwaitchan) != nil) sendp(c, w); else free(w); } threadexits("procexec"); }