diff --git a/kernel/system/do_sigsend.c b/kernel/system/do_sigsend.c index 9e082b6f7..5e84bc374 100644 --- a/kernel/system/do_sigsend.c +++ b/kernel/system/do_sigsend.c @@ -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); }