diff options
author | Alexis211 <alexis211@gmail.com> | 2010-08-10 21:04:39 +0200 |
---|---|---|
committer | Alexis211 <alexis211@gmail.com> | 2010-08-10 21:04:39 +0200 |
commit | e7f5de73e8b3fe792a17c34a6c0bb85a84b0f50e (patch) | |
tree | e2b5794637fd01a2af9bb27eb502d496df01896e /src/kernel/task/timer.c | |
parent | b2c444834ef0a384587a6a7d196eeb073825eac2 (diff) | |
download | TCE-e7f5de73e8b3fe792a17c34a6c0bb85a84b0f50e.tar.gz TCE-e7f5de73e8b3fe792a17c34a6c0bb85a84b0f50e.zip |
Changed idt_waitIrq to support multiple waiting threads.
Diffstat (limited to 'src/kernel/task/timer.c')
-rw-r--r-- | src/kernel/task/timer.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/kernel/task/timer.c b/src/kernel/task/timer.c index 643ca54..65ad06a 100644 --- a/src/kernel/task/timer.c +++ b/src/kernel/task/timer.c @@ -61,10 +61,7 @@ void thread_sleep(uint32_t msecs) { sf->wakeup_time = timer_time() + msecs; sf->thread = current_thread; //Insert it at the right place - if (sleeping_threads == 0) { - sleeping_threads = sf; - sf->next = 0; - } else if (sleeping_threads->wakeup_time >= sf->wakeup_time) { + if (sleeping_threads == 0 || sleeping_threads->wakeup_time >= sf->wakeup_time) { sf->next = sleeping_threads; sleeping_threads = sf; } else { |