Part of wait()/waitpid() fix in revision 2629:2634 in PM - kernel

unblocks a process that has no priority (stopped with sys_nice()
and PRIO_STOP) and reschedules it if that gives it RTS flags of 0.
This commit is contained in:
Ben Gras 2006-10-25 13:38:31 +00:00
parent f84653d908
commit 65a1d21963

View File

@ -77,6 +77,12 @@ message *m_ptr; /* pointer to request message */
rp->p_reg.sp = (reg_t) frp;
rp->p_reg.pc = (reg_t) smsg.sm_sighandler;
/* Reschedule if necessary. */
if(rp->p_rts_flags & NO_PRIORITY) {
rp->p_rts_flags &= ~NO_PRIORITY;
if (rp->p_rts_flags == 0) lock_enqueue(rp);
} else kprintf("system: warning: sigsend a running process\n");
return(OK);
}