Fork me on GitHub
mutex.h
Go to the documentation of this file.
1 
10 #ifndef _JANUS_MUTEX_H
11 #define _JANUS_MUTEX_H
12 
13 #include <pthread.h>
14 #include <errno.h>
15 
16 extern int lock_debug;
17 
19 typedef pthread_mutex_t janus_mutex;
21 #define janus_mutex_init(a) pthread_mutex_init(a,NULL)
22 
23 #define janus_mutex_destroy(a) pthread_mutex_destroy(a)
24 
25 #define janus_mutex_lock_nodebug(a) pthread_mutex_lock(a);
26 
27 #define janus_mutex_lock_debug(a) { printf("[%s:%s:%d:] ", __FILE__, __FUNCTION__, __LINE__); printf("LOCK %p\n", a); pthread_mutex_lock(a); };
28 
29 #define janus_mutex_lock(a) { if(!lock_debug) { janus_mutex_lock_nodebug(a); } else { janus_mutex_lock_debug(a); } };
30 
31 #define janus_mutex_unlock_nodebug(a) pthread_mutex_unlock(a);
32 
33 #define janus_mutex_unlock_debug(a) { printf("[%s:%s:%d:] ", __FILE__, __FUNCTION__, __LINE__); printf("UNLOCK %p\n", a); pthread_mutex_unlock(a); };
34 
35 #define janus_mutex_unlock(a) { if(!lock_debug) { janus_mutex_unlock_nodebug(a); } else { janus_mutex_unlock_debug(a); } };
36 
38 typedef pthread_cond_t janus_condition;
40 #define janus_condition_init(a) pthread_cond_init(a,NULL)
41 
42 #define janus_condition_destroy(a) pthread_cond_destroy(a)
43 
44 #define janus_condition_wait(a, b) pthread_cond_wait(a, b);
45 
46 #define janus_condition_timedwait(a, b, c) pthread_cond_timedwait(a, b, c);
47 
48 #define janus_condition_signal(a) pthread_cond_signal(a);
49 
50 #define janus_condition_broadcast(a) pthread_cond_broadcast(a);
51 
52 #endif
pthread_cond_t janus_condition
Janus condition implementation.
Definition: mutex.h:38
int lock_debug
Definition: janus.c:293
pthread_mutex_t janus_mutex
Janus mutex implementation.
Definition: mutex.h:19