Fork me on GitHub
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 
15 extern int lock_debug;
16 
18 typedef pthread_mutex_t janus_mutex;
20 #define janus_mutex_init(a) pthread_mutex_init(a,NULL)
21 
22 #define janus_mutex_destroy(a) pthread_mutex_destroy(a)
23 
24 #define janus_mutex_lock_nodebug(a) pthread_mutex_lock(a);
25 
26 #define janus_mutex_lock_debug(a) { printf("[%s:%s:%d:] ", __FILE__, __FUNCTION__, __LINE__); printf("LOCK %p\n", a); pthread_mutex_lock(a); };
27 
28 #define janus_mutex_lock(a) { if(!lock_debug) { janus_mutex_lock_nodebug(a); } else { janus_mutex_lock_debug(a); } };
29 
30 #define janus_mutex_unlock_nodebug(a) pthread_mutex_unlock(a);
31 
32 #define janus_mutex_unlock_debug(a) { printf("[%s:%s:%d:] ", __FILE__, __FUNCTION__, __LINE__); printf("UNLOCK %p\n", a); pthread_mutex_unlock(a); };
33 
34 #define janus_mutex_unlock(a) { if(!lock_debug) { janus_mutex_unlock_nodebug(a); } else { janus_mutex_unlock_debug(a); } };
35 
36 #endif