ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
mutex.h File Reference

Cross-platform mutex interface for ascii-chat. More...

Go to the source code of this file.

Data Structures

struct  mutex_t
 Mutex type (POSIX: pthread_mutex_t with debug tracking) More...
 

Macros

#define LOG_MUTEX_STATE(mutex)   mutex_log_state(mutex, __FILE__, __LINE__, __func__)
 
Mutex Locking Macros
#define mutex_lock(mutex)    (debug_sync_is_initialized() ? debug_sync_mutex_lock(mutex, __FILE__, __LINE__, __func__) : mutex_lock_impl(mutex))
 Lock a mutex (with debug tracking in debug builds)
 
#define mutex_trylock(mutex)    (debug_sync_is_initialized() ? debug_sync_mutex_trylock(mutex, __FILE__, __LINE__, __func__) : mutex_trylock_impl(mutex))
 Try to lock a mutex without blocking (with debug tracking in debug builds)
 
#define mutex_unlock(mutex)    (debug_sync_is_initialized() ? debug_sync_mutex_unlock(mutex, __FILE__, __LINE__, __func__) : mutex_unlock_impl(mutex))
 Unlock a mutex (with debug tracking in debug builds)
 

Functions

int debug_sync_mutex_lock (mutex_t *mutex, const char *file_name, int line_number, const char *function_name)
 
int debug_sync_mutex_trylock (mutex_t *mutex, const char *file_name, int line_number, const char *function_name)
 
int debug_sync_mutex_unlock (mutex_t *mutex, const char *file_name, int line_number, const char *function_name)
 
bool debug_sync_is_initialized (void)
 
int mutex_init (mutex_t *mutex, const char *name)
 Initialize a mutex with a name.
 
int mutex_destroy (mutex_t *mutex)
 Destroy a mutex.
 
void mutex_on_lock (mutex_t *mutex)
 Hook called when a mutex is successfully locked.
 
void mutex_on_unlock (mutex_t *mutex)
 Hook called when a mutex is unlocked.
 
void mutex_on_trylock (mutex_t *mutex, bool success)
 Hook called when a mutex trylock is attempted.
 
void mutex_log_state (const mutex_t *mutex, const char *file, int line, const char *func)
 Log the state of a mutex.
 
int mutex_lock_impl (mutex_t *mutex)
 Lock a mutex (implementation function)
 
int mutex_trylock_impl (mutex_t *mutex)
 Try to lock a mutex without blocking (implementation function)
 
int mutex_unlock_impl (mutex_t *mutex)
 Unlock a mutex (implementation function)
 

Detailed Description

Cross-platform mutex interface for ascii-chat.

Definition in file platform/mutex.h.