summaryrefslogtreecommitdiff
path: root/kern/semaphore.h
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-09-07 20:59:07 +0200
committerRichard Braun <rbraun@sceen.net>2017-09-07 21:51:38 +0200
commit652096292732e1ca10d22a3dfaa24af098956c6a (patch)
tree0faad4a270795b6d6c6a0341b445cd8610162c39 /kern/semaphore.h
parent63838cf0f495bd18e166499ce1b99f4bf5c26fa5 (diff)
kern/semaphore: do not assume common case
Unlike locks, which are expected to be used with the goal of minimum contention in mind, semaphores usage is more vague and it's not reasonable to expect a common case where they're unlocked.
Diffstat (limited to 'kern/semaphore.h')
-rw-r--r--kern/semaphore.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/kern/semaphore.h b/kern/semaphore.h
index e1acbf21..9de5d4a8 100644
--- a/kern/semaphore.h
+++ b/kern/semaphore.h
@@ -37,7 +37,6 @@
#include <kern/atomic.h>
#include <kern/error.h>
-#include <kern/macros.h>
#define SEMAPHORE_VALUE_MAX 32768
@@ -69,7 +68,7 @@ semaphore_trywait(struct semaphore *semaphore)
prev = semaphore_dec(semaphore);
- if (unlikely(prev == 0)) {
+ if (prev == 0) {
return ERROR_AGAIN;
}
@@ -89,7 +88,7 @@ semaphore_wait(struct semaphore *semaphore)
prev = semaphore_dec(semaphore);
- if (unlikely(prev == 0)) {
+ if (prev == 0) {
semaphore_wait_slow(semaphore);
}
}
@@ -101,7 +100,7 @@ semaphore_timedwait(struct semaphore *semaphore, uint64_t ticks)
prev = semaphore_dec(semaphore);
- if (unlikely(prev == 0)) {
+ if (prev == 0) {
return semaphore_timedwait_slow(semaphore, ticks);
}
@@ -123,7 +122,7 @@ semaphore_post(struct semaphore *semaphore)
prev = semaphore_inc(semaphore);
- if (unlikely(prev == 0)) {
+ if (prev == 0) {
semaphore_post_slow(semaphore);
}
}