added primitive semaphore
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2022 Oleg Borodin <borodin@unix7.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "semaphore.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int value;
|
||||||
|
} sem_t;
|
||||||
|
|
||||||
|
int sem_init(sem_t* sem, int value) {
|
||||||
|
sem->value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
int sem_wait(sem_t* sem) {
|
||||||
|
while(sem->value > 0);
|
||||||
|
sem->value--;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int sem_post(sem_t* sem) {
|
||||||
|
sem->value++;
|
||||||
|
}
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2022 Oleg Borodin <borodin@unix7.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int value;
|
||||||
|
} sem_t;
|
||||||
|
|
||||||
|
int sem_init(sem_t* sem, int value);
|
||||||
|
int sem_wait(sem_t* sem);
|
||||||
|
int sem_post(sem_t* sem);
|
||||||
Reference in New Issue
Block a user