solidc
Robust collection of general-purpose cross-platform C libraries and data structures designed for rapid and safe development in C
Loading...
Searching...
No Matches
lock.h
Go to the documentation of this file.
1
16#ifndef LOCK_H
17#define LOCK_H
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23#ifdef _WIN32
24#include <windows.h>
26typedef CRITICAL_SECTION Lock;
28typedef CONDITION_VARIABLE Condition;
29#else
30#include <pthread.h>
32typedef pthread_mutex_t Lock;
34typedef pthread_cond_t Condition;
35#endif
36
37/* Lock (Mutex) Functions */
38
45int lock_init(Lock* lock);
46
53int lock_acquire(Lock* lock);
54
61int lock_release(Lock* lock);
62
69int lock_free(Lock* lock);
70
77int lock_try_acquire(Lock* lock);
78
88int lock_wait(Lock* lock, Condition* condition, int timeout_ms);
89
90/* Condition Variable Functions */
91
98int cond_init(Condition* condition);
99
106int cond_signal(Condition* condition);
107
114int cond_broadcast(Condition* condition);
115
124int cond_wait(Condition* condition, Lock* lock);
125
135int cond_wait_timeout(Condition* condition, Lock* lock, int timeout_ms);
136
143int cond_free(Condition* condition);
144
145/* Utility Functions */
146
147#ifdef __cplusplus
148}
149#endif
150
151#endif // LOCK_H
pthread_mutex_t Lock
Definition lock.h:32
int lock_init(Lock *lock)
Definition lock.c:132
int cond_wait(Condition *condition, Lock *lock)
Definition lock.c:262
int cond_free(Condition *condition)
Definition lock.c:316
int cond_init(Condition *condition)
Definition lock.c:220
int lock_acquire(Lock *lock)
Definition lock.c:145
int cond_wait_timeout(Condition *condition, Lock *lock, int timeout_ms)
Definition lock.c:275
int lock_release(Lock *lock)
Definition lock.c:168
int cond_signal(Condition *condition)
Definition lock.c:234
int lock_try_acquire(Lock *lock)
Definition lock.c:196
int cond_broadcast(Condition *condition)
Definition lock.c:248
int lock_free(Lock *lock)
Definition lock.c:182
pthread_cond_t Condition
Definition lock.h:34
int lock_wait(Lock *lock, Condition *condition, int timeout_ms)
Definition lock.c:216