X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/9d62069fd52fa2108b677ffadc7f6138c7641757..270869139db617e29a35bb9ded41087bb702f9ac:/lunaix-os/kernel/ds/semaphore.c?ds=sidebyside diff --git a/lunaix-os/kernel/ds/semaphore.c b/lunaix-os/kernel/ds/semaphore.c index ab494d2..b4d0674 100644 --- a/lunaix-os/kernel/ds/semaphore.c +++ b/lunaix-os/kernel/ds/semaphore.c @@ -1,5 +1,5 @@ #include -#include +#include void sem_init(struct sem_t* sem, unsigned int initial) @@ -11,7 +11,8 @@ void sem_wait(struct sem_t* sem) { while (!atomic_load(&sem->counter)) { - schedule(); + // FIXME: better thing like wait queue + preempt_current(); } atomic_fetch_sub(&sem->counter, 1); }