23#define MUTEX_SCOPE(mutex) \
24 __attribute__((cleanup(mutex_cleanup))) mutex_t* CONCAT(m, __COUNTER__) = (mutex); \
25 mutex_acquire((mutex))
32#define MUTEX_CREATE {.waitQueue = WAIT_QUEUE_CREATE, .owner = NULL, .depth = 0, .lock = LOCK_CREATE}
bool mutex_acquire_timeout(mutex_t *mtx, clock_t timeout)
Acquires a mutex, blocking until it is available or the timeout is reached.
void mutex_release(mutex_t *mtx)
Releases a mutex.
void mutex_acquire(mutex_t *mtx)
Acquires a mutex, blocking until it is available.
void mutex_deinit(mutex_t *mtx)
Deinitializes a mutex.
static void mutex_cleanup(mutex_t **mtx)
void mutex_init(mutex_t *mtx)
Initializes a mutex.
__UINT64_TYPE__ clock_t
A nanosecond time.
A simple ticket lock implementation.
Thread of execution structure.