]> Zhao Yanbai Git Server - minix.git/commitdiff
Don't enqueue processes unless their flags have become 0
authorBen Gras <ben@minix3.org>
Fri, 21 Oct 2005 17:35:39 +0000 (17:35 +0000)
committerBen Gras <ben@minix3.org>
Fri, 21 Oct 2005 17:35:39 +0000 (17:35 +0000)
kernel/system/do_exit.c

index 6c144ffc9d5e6716beb7b7da9be439d2ba218832..38110f590dc7058647eae807f20ae21de76bd01d 100644 (file)
@@ -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 */
       } 
   }