diff options
Diffstat (limited to 'firmware/kernel/semaphore.c')
-rw-r--r-- | firmware/kernel/semaphore.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/firmware/kernel/semaphore.c b/firmware/kernel/semaphore.c index f9ff0ad987..b6ce7fd742 100644 --- a/firmware/kernel/semaphore.c +++ b/firmware/kernel/semaphore.c | |||
@@ -82,11 +82,7 @@ int semaphore_wait(struct semaphore *s, int timeout) | |||
82 | * explicit in semaphore_release */ | 82 | * explicit in semaphore_release */ |
83 | current->retval = OBJ_WAIT_TIMEDOUT; | 83 | current->retval = OBJ_WAIT_TIMEDOUT; |
84 | 84 | ||
85 | if(timeout > 0) | 85 | block_thread(current, timeout); |
86 | block_thread_w_tmo(current, timeout); /* ...or timed out... */ | ||
87 | else | ||
88 | block_thread(current); /* -timeout = infinite */ | ||
89 | |||
90 | corelock_unlock(&s->cl); | 86 | corelock_unlock(&s->cl); |
91 | 87 | ||
92 | /* ...and turn control over to next thread */ | 88 | /* ...and turn control over to next thread */ |
@@ -118,7 +114,7 @@ void semaphore_release(struct semaphore *s) | |||
118 | KERNEL_ASSERT(s->count == 0, | 114 | KERNEL_ASSERT(s->count == 0, |
119 | "semaphore_release->threads queued but count=%d!\n", s->count); | 115 | "semaphore_release->threads queued but count=%d!\n", s->count); |
120 | s->queue->retval = OBJ_WAIT_SUCCEEDED; /* indicate explicit wake */ | 116 | s->queue->retval = OBJ_WAIT_SUCCEEDED; /* indicate explicit wake */ |
121 | result = wakeup_thread(&s->queue); | 117 | result = wakeup_thread(&s->queue, WAKEUP_DEFAULT); |
122 | } | 118 | } |
123 | else | 119 | else |
124 | { | 120 | { |