From e31cea946f459d93fb2023a395d947680643c7a4 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 22 May 2012 12:11:22 +0000 Subject: wakeup from signal at top priority --- kernel/kernel.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'kernel') diff --git a/kernel/kernel.c b/kernel/kernel.c index 058edcc..b466351 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -242,6 +242,8 @@ signal(uint8_t chan) if ((tp = TAILQ_FIRST(&kern.wq[chan]))) { /* release first waiting task from wait queue */ TAILQ_REMOVE(&kern.wq[chan], tp, w_link); + kern.cur->prio = kern.cur->defprio; + kern.cur->rq = &kern.rq[kern.cur->prio]; TAILQ_INSERT_TAIL(kern.cur->rq, tp, r_link); SCHEDULE(); } else { -- cgit v1.2.3