X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fkern%2Fsem.c;h=ac4e7d969bb4afa5bd505a182a16a59b9a31372f;hb=bafb0b64bbebb8632d3aa4c1440c5e19c87a2d24;hp=cc9234aa64a020531a6c1e354d93bd595fd80f6d;hpb=0e8fc7e3fe0e2cb2e75d0b3b9da1899f74074d0c;p=bertos.git diff --git a/bertos/kern/sem.c b/bertos/kern/sem.c index cc9234aa..ac4e7d96 100644 --- a/bertos/kern/sem.c +++ b/bertos/kern/sem.c @@ -28,21 +28,22 @@ * * Copyright 2001, 2004 Develer S.r.l. (http://www.develer.com/) * Copyright 1999, 2000, 2001 Bernie Innocenti - * * --> * * \brief Semaphore based synchronization services. * * \version $Id$ - * * \author Bernie Innocenti */ #include "sem.h" +#include + +#include // ASSERT_IRQ_DISABLED() + #include #include #include -#include INLINE void sem_verify(struct Semaphore *s) { @@ -53,7 +54,6 @@ INLINE void sem_verify(struct Semaphore *s) ASSERT(s->nest_count < 128); // heuristic max } - /** * \brief Initialize a Semaphore structure. */ @@ -178,7 +178,7 @@ void sem_release(struct Semaphore *s) { s->nest_count = 1; s->owner = proc; - SCHED_ENQUEUE(proc); + ATOMIC(SCHED_ENQUEUE(proc)); } }