picofuse

cond.h
Go to the documentation of this file.
1 
10 #pragma once
11 #include "mutex.h"
12 #include <stdbool.h>
13 #include <stdint.h>
14 
21 #ifndef SYS_COND_CAPACITY
22 #define SYS_COND_CAPACITY 32
23 #endif
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
30 // TYPES
31 
37 typedef struct sys_cond_t sys_cond_t;
38 
40 // LIFECYCLE
41 
56 
66 void sys_cond_deinit(sys_cond_t *cond);
67 
70 // METHODS
72 
87 bool sys_cond_wait(sys_cond_t *cond, sys_mutex_t *mutex);
88 
100 bool sys_cond_timedwait(sys_cond_t *cond, sys_mutex_t *mutex,
101  uint32_t timeout_ms);
102 
113 bool sys_cond_signal(sys_cond_t *cond);
114 
125 bool sys_cond_broadcast(sys_cond_t *cond);
126 
129 #ifdef __cplusplus
130 }
131 #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:43
struct sys_cond_t sys_cond_t
Condition variable.
Definition: cond.h:37
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.