aboutsummaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-05-22 12:11:22 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-05-22 12:11:22 +0000
commite31cea946f459d93fb2023a395d947680643c7a4 (patch)
treefb6c9a45e8e86f0e9e182774174305331adf4c0e /kernel/kernel.c
parent4fc2f5e4ae07364372d7cd13716087b2658299bd (diff)
wakeup from signal at top priority
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c2
1 files changed, 2 insertions, 0 deletions
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 {