From db01af35020403053cc0d124670033f61a04aaf2 Mon Sep 17 00:00:00 2001
From: Martine Lenders <mail@martine-lenders.eu>
Date: Tue, 24 Nov 2015 09:43:04 +0100
Subject: [PATCH] sema: deactivate interrupts for queue manipulation

---
 sys/sema/sema.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys/sema/sema.c b/sys/sema/sema.c
index 53962a1e72..b9ae892a97 100644
--- a/sys/sema/sema.c
+++ b/sys/sema/sema.c
@@ -102,11 +102,12 @@ int sema_wait_timed_msg(sema_t *sema, uint64_t timeout, msg_t *msg)
 
         restoreIRQ(old_state);
         msg_receive(msg);
-
+        old_state = disableIRQ();
         if (timeout != 0) {
             xtimer_remove(&timeout_timer);
         }
         priority_queue_remove(&sema->queue, &n);
+        restoreIRQ(old_state);
         if (msg->content.ptr != (void *)sema) {
             return -EAGAIN;
         }
-- 
GitLab