Semaphors, Mutexes and Conditions. More...
Go to the source code of this file.
Macros | |
#define | janus_mutex_init(a) g_mutex_init(a) |
Janus mutex initialization. More... | |
#define | JANUS_MUTEX_INITIALIZER {0} |
Janus static mutex initializer. More... | |
#define | janus_mutex_destroy(a) g_mutex_clear(a) |
Janus mutex destruction. More... | |
#define | janus_mutex_lock_nodebug(a) g_mutex_lock(a); |
Janus mutex lock without debug. More... | |
#define | janus_mutex_lock_debug(a) { JANUS_PRINT("[%s:%s:%d:lock] %p\n", __FILE__, __FUNCTION__, __LINE__, a); g_mutex_lock(a); }; |
Janus mutex lock with debug (prints the line that locked a mutex) More... | |
#define | janus_mutex_lock(a) { if(!lock_debug) { janus_mutex_lock_nodebug(a); } else { janus_mutex_lock_debug(a); } }; |
Janus mutex lock wrapper (selective locking debug) More... | |
#define | janus_mutex_unlock_nodebug(a) g_mutex_unlock(a); |
Janus mutex unlock without debug. More... | |
#define | janus_mutex_unlock_debug(a) { JANUS_PRINT("[%s:%s:%d:unlock] %p\n", __FILE__, __FUNCTION__, __LINE__, a); g_mutex_unlock(a); }; |
Janus mutex unlock with debug (prints the line that unlocked a mutex) More... | |
#define | janus_mutex_unlock(a) { if(!lock_debug) { janus_mutex_unlock_nodebug(a); } else { janus_mutex_unlock_debug(a); } }; |
Janus mutex unlock wrapper (selective locking debug) More... | |
#define | janus_condition_init(a) g_cond_init(a) |
Janus condition initialization. More... | |
#define | janus_condition_destroy(a) g_cond_clear(a) |
Janus condition destruction. More... | |
#define | janus_condition_wait(a, b) g_cond_wait(a, b); |
Janus condition wait. More... | |
#define | janus_condition_wait_until(a, b, c) g_cond_wait_until(a, b, c); |
Janus condition wait until. More... | |
#define | janus_condition_signal(a) g_cond_signal(a); |
Janus condition signal. More... | |
#define | janus_condition_broadcast(a) g_cond_broadcast(a); |
Janus condition broadcast. More... | |
Typedefs | |
typedef GMutex | janus_mutex |
Janus mutex implementation. More... | |
typedef GCond | janus_condition |
Janus condition implementation. More... | |
Variables | |
int | lock_debug |
Semaphors, Mutexes and Conditions.
Implementation (based on GMutex or pthread_mutex) of a locking mechanism based on mutexes and conditions.
#define janus_condition_broadcast | ( | a | ) | g_cond_broadcast(a); |
Janus condition broadcast.
#define janus_condition_destroy | ( | a | ) | g_cond_clear(a) |
Janus condition destruction.
#define janus_condition_init | ( | a | ) | g_cond_init(a) |
Janus condition initialization.
#define janus_condition_signal | ( | a | ) | g_cond_signal(a); |
Janus condition signal.
#define janus_condition_wait | ( | a, | |
b | |||
) | g_cond_wait(a, b); |
Janus condition wait.
#define janus_condition_wait_until | ( | a, | |
b, | |||
c | |||
) | g_cond_wait_until(a, b, c); |
Janus condition wait until.
#define janus_mutex_destroy | ( | a | ) | g_mutex_clear(a) |
Janus mutex destruction.
#define janus_mutex_init | ( | a | ) | g_mutex_init(a) |
Janus mutex initialization.
#define JANUS_MUTEX_INITIALIZER {0} |
Janus static mutex initializer.
#define janus_mutex_lock | ( | a | ) | { if(!lock_debug) { janus_mutex_lock_nodebug(a); } else { janus_mutex_lock_debug(a); } }; |
Janus mutex lock wrapper (selective locking debug)
#define janus_mutex_lock_debug | ( | a | ) | { JANUS_PRINT("[%s:%s:%d:lock] %p\n", __FILE__, __FUNCTION__, __LINE__, a); g_mutex_lock(a); }; |
Janus mutex lock with debug (prints the line that locked a mutex)
#define janus_mutex_lock_nodebug | ( | a | ) | g_mutex_lock(a); |
Janus mutex lock without debug.
#define janus_mutex_unlock | ( | a | ) | { if(!lock_debug) { janus_mutex_unlock_nodebug(a); } else { janus_mutex_unlock_debug(a); } }; |
Janus mutex unlock wrapper (selective locking debug)
#define janus_mutex_unlock_debug | ( | a | ) | { JANUS_PRINT("[%s:%s:%d:unlock] %p\n", __FILE__, __FUNCTION__, __LINE__, a); g_mutex_unlock(a); }; |
Janus mutex unlock with debug (prints the line that unlocked a mutex)
#define janus_mutex_unlock_nodebug | ( | a | ) | g_mutex_unlock(a); |
Janus mutex unlock without debug.
typedef GCond janus_condition |
Janus condition implementation.
typedef GMutex janus_mutex |
Janus mutex implementation.
int lock_debug |