summaryrefslogtreecommitdiff
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
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.
-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);
}
}