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:
parent
f84653d908
commit
65a1d21963
@ -77,6 +77,12 @@ message *m_ptr; /* pointer to request message */
|
|||||||
rp->p_reg.sp = (reg_t) frp;
|
rp->p_reg.sp = (reg_t) frp;
|
||||||
rp->p_reg.pc = (reg_t) smsg.sm_sighandler;
|
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);
|
return(OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user