From 40230ade507748b936be007b33eed441f9d84ae6 Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Wed, 3 Aug 2011 21:38:40 +0200 Subject: [PATCH] avoid unneeded using of per_core macro --- include/metalsvm/semaphore.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/metalsvm/semaphore.h b/include/metalsvm/semaphore.h index 735c0e78..42348383 100644 --- a/include/metalsvm/semaphore.h +++ b/include/metalsvm/semaphore.h @@ -83,6 +83,8 @@ inline static int sem_destroy(sem_t* s) { * - -1 on failure */ inline static int sem_wait(sem_t* s) { + task_t* curr_task = per_core(current_task); + if (BUILTIN_EXPECT(!s, 0)) return -1; @@ -92,9 +94,9 @@ next_try: s->value--; spinlock_unlock(&s->lock); } else { - s->queue[s->pos] = per_core(current_task)->id; + s->queue[s->pos] = curr_task->id; s->pos = (s->pos + 1) % MAX_TASKS; - block_task(per_core(current_task)->id); + block_task(curr_task->id); spinlock_unlock(&s->lock); reschedule(); goto next_try;