]> git.lizzy.rs Git - dragonstd.git/blob - flag.h
Add flags
[dragonstd.git] / flag.h
1 #ifndef _DRAGONSTD_FLAG_H_
2 #define _DRAGONSTD_FLAG_H_
3
4 #include <stdbool.h>
5 #include <stdatomic.h>
6 #include <pthread.h>
7
8 typedef struct {
9         atomic_bool done;
10         pthread_cond_t cv;
11         pthread_mutex_t mtx;
12 } Flag;
13
14 Flag *flag_create();
15 void flag_delete(Flag *flag);
16 void flag_set(Flag *flag);
17 void flag_wait(Flag *flag);
18
19 #endif