sched-sem.h (484B)
1 #ifndef __FINWO_SCHEDULER_SEM_H__ 2 #define __FINWO_SCHEDULER_SEM_H__ 3 4 struct sched_sem { 5 int value; 6 }; 7 8 void sched_sem_init(struct sched_sem *sem, int amount); 9 void sched_sem_signal(struct sched_sem *sem, int amount); 10 void sched_sem_consume(struct sched_sem *sem, int amount); 11 12 #define sched_sem_wait(sem) \ 13 do { \ 14 if ((sem)->value <= 0) return SCHED_RUNNING; \ 15 } while (0) 16 17 #endif // __FINWO_SCHEDULER_SEM_H__