diff --git a/include/hermit/spinlock.h b/include/hermit/spinlock.h index fbfba6519..19917df6a 100644 --- a/include/hermit/spinlock.h +++ b/include/hermit/spinlock.h @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -103,7 +104,8 @@ inline static int spinlock_lock(spinlock_t* s) { #if 1 ticket = atomic_int32_inc(&s->queue); while(atomic_int32_read(&s->dequeue) != ticket) { - PAUSE; + //PAUSE; + check_scheduling(); } s->owner = curr_task->id; s->counter = 1; @@ -193,7 +195,8 @@ inline static int spinlock_irqsave_lock(spinlock_irqsave_t* s) { ticket = atomic_int32_inc(&s->queue); while (atomic_int32_read(&s->dequeue) != ticket) { - PAUSE; + //PAUSE; + check_scheduling(); } s->coreid = CORE_ID;