cond.h
Go to the documentation of this file.
1 /*
2  * SPDX-License-Identifier: LGPL-2.1-only
3  */
4 
5 #pragma once
6 
137 #include <stdbool.h>
138 #include <stddef.h>
139 
140 #include "list.h"
141 #include "mutex.h"
142 
143 #ifdef __cplusplus
144 extern "C" {
145 #endif
146 
150 typedef struct {
157 } cond_t;
158 
164 #define COND_INIT { { NULL } }
165 
175 void cond_init(cond_t *cond);
176 
183 void cond_wait(cond_t *cond, mutex_t *mutex);
184 
194 void cond_signal(cond_t *cond);
195 
205 void cond_broadcast(cond_t *cond);
206 
207 #ifdef __cplusplus
208 }
209 #endif
210 
void cond_broadcast(cond_t *cond)
Wakes up all threads waiting on the condition variable.
void cond_wait(cond_t *cond, mutex_t *mutex)
Waits on a condition.
void cond_init(cond_t *cond)
Initializes a condition variable.
void cond_signal(cond_t *cond)
Wakes up one thread waiting on the condition variable.
Intrusive linked list.
Mutex for thread synchronization.
Condition variable structure.
Definition: cond.h:150
list_node_t queue
The process waiting queue of the condition variable.
Definition: cond.h:156
List node structure.
Definition: list.h:36
Mutex structure.
Definition: mutex.h:36