aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2013-05-24 17:08:58 +0000
committerDimitri Sokolyuk <demon@dim13.org>2013-05-24 17:08:58 +0000
commitfc6c57f0ebd8a97627686043313d49ee4d0f8aa4 (patch)
tree613665a2e0d85c18da55a05890e2df6f727622c2
parent781486949c247900dd866cbf235987b5ee76747d (diff)
more comments
-rw-r--r--kernel/kernel.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index b3760d4..f688823 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -242,9 +242,12 @@ sleep(uint32_t sec, uint32_t usec)
cli();
- kern.cur->release = NOW(kern.cycles, TCNT1) + SEC(sec) + USEC(usec);
+ /* remove current task from RTR queue */
TAILQ_REMOVE(&kern.rq, kern.cur, r_link);
+ /* set next wakeup time and put it on Wait queue */
+ kern.cur->release = NOW(kern.cycles, TCNT1) + SEC(sec) + USEC(usec);
+
/* find right place */
TAILQ_FOREACH(tp, &kern.tq, t_link)
if (SPAN(tp->release, kern.cur->release) < 0)