Loading...
Searching...
No Matches
cond.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: LGPL-2.1-only
3 */
4
5#pragma once
6
136
137#include <stdbool.h>
138#include <stddef.h>
139
140#include "list.h"
141#include "mutex.h"
142
143#ifdef __cplusplus
144extern "C" {
145#endif
146
150typedef struct {
157} cond_t;
158
164#define COND_INIT { { NULL } }
165
175void cond_init(cond_t *cond);
176
183void cond_wait(cond_t *cond, mutex_t *mutex);
184
194void cond_signal(cond_t *cond);
195
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.
struct list_node list_node_t
List node structure.
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
Mutex structure.
Definition mutex.h:36