libtransistor
A userland library for the Nintendo Switch
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
condvar.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #include<libtransistor/types.h>
13 #include<libtransistor/mutex.h>
14 
15 typedef struct {
16  uint32_t key;
18 
19 #define TRN_CONDVAR_STATIC_INITIALIZER {.key = 0}
20 
27 void trn_condvar_create(trn_condvar_t *condvar);
28 
33 
39 result_t trn_condvar_wait(trn_condvar_t *condvar, trn_mutex_t *mutex, uint64_t timeout) REQUIRES(mutex);
40 
44 void trn_condvar_destroy(trn_condvar_t *condvar);
45 
46 #ifdef __cplusplus
47 }
48 #endif
Various system types.
void trn_condvar_create(trn_condvar_t *condvar)
Creates a condition variable.
result_t trn_condvar_wait(trn_condvar_t *condvar, trn_mutex_t *mutex, uint64_t timeout) REQUIRES(mutex)
Waits for the condition variable to be signalled.
result_t trn_condvar_signal(trn_condvar_t *condvar, int n)
Signals n threads waiting on the condition variable, or -1 for all of them.
uint32_t result_t
Function result.
Definition: types.h:51
Definition: condvar.h:15
void trn_condvar_destroy(trn_condvar_t *condvar)
Destroys a condition variable.
Mutex functions and thread-safety macros.