picofuse

cond.h
Go to the documentation of this file.
1 
8 #pragma once
9 #include "mutex.h"
10 #include <stdbool.h>
11 #include <stdint.h>
12 
19 #ifndef SYS_COND_CAPACITY
20 #define SYS_COND_CAPACITY 32
21 #endif
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
28 // TYPES
29 
35 typedef struct sys_cond_t sys_cond_t;
36 
38 // LIFECYCLE
39 
54 
64 void sys_cond_deinit(sys_cond_t *cond);
65 
68 // METHODS
70 
85 bool sys_cond_wait(sys_cond_t *cond, sys_mutex_t *mutex);
86 
98 bool sys_cond_timedwait(sys_cond_t *cond, sys_mutex_t *mutex,
99  uint32_t timeout_ms);
100 
111 bool sys_cond_signal(sys_cond_t *cond);
112 
123 bool sys_cond_broadcast(sys_cond_t *cond);
124 
127 #ifdef __cplusplus
128 }
129 #endif
bool sys_cond_timedwait(sys_cond_t *cond, sys_mutex_t *mutex, uint32_t timeout_ms)
Wait on a condition variable with timeout.
sys_cond_t * sys_cond_init(void)
Initialize a new condition variable.
void sys_cond_deinit(sys_cond_t *cond)
Deinitialize a condition variable.
struct sys_mutex_t sys_mutex_t
Mutex.
Definition: mutex.h:44
struct sys_cond_t sys_cond_t
Condition variable.
Definition: cond.h:35
bool sys_cond_wait(sys_cond_t *cond, sys_mutex_t *mutex)
Wait on a condition variable.
bool sys_cond_broadcast(sys_cond_t *cond)
Signal all waiting threads.
bool sys_cond_signal(sys_cond_t *cond)
Signal one waiting thread.
Defines mutex primitives for thread synchronization.