From: Ben Gras Date: Fri, 21 Oct 2005 17:35:39 +0000 (+0000) Subject: Don't enqueue processes unless their flags have become 0 X-Git-Tag: v3.1.2a~559 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/zlib_tech.html?a=commitdiff_plain;h=81fa8fc3b886dde1cf134955ba14d76cb9251f49;p=minix.git Don't enqueue processes unless their flags have become 0 --- diff --git a/kernel/system/do_exit.c b/kernel/system/do_exit.c index 6c144ffc9..38110f590 100644 --- a/kernel/system/do_exit.c +++ b/kernel/system/do_exit.c @@ -107,7 +107,7 @@ register struct proc *rc; /* slot of process to clean up */ #if DEBUG_ENABLE_IPC_WARNINGS kprintf("Proc %d receive dead src %d\n", proc_nr(rp), proc_nr(rc)); #endif - lock_enqueue(rp); /* let process run again */ + if (rp->p_rts_flags == 0) lock_enqueue(rp);/* let process run again */ } else if ((rp->p_rts_flags & SENDING) && rp->p_sendto == proc_nr(rc)) { rp->p_reg.retreg = EDSTDIED; /* report destination died */ @@ -115,7 +115,7 @@ register struct proc *rc; /* slot of process to clean up */ #if DEBUG_ENABLE_IPC_WARNINGS kprintf("Proc %d send dead dst %d\n", proc_nr(rp), proc_nr(rc)); #endif - lock_enqueue(rp); /* let process run again */ + if (rp->p_rts_flags == 0) lock_enqueue(rp);/* let process run again */ } }