diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h index 70a08abce30688b4d47fbc82533ab233a1bad40d..f09daa505b746b5df0233958d1ab14834ae8d22f 100755 --- a/include/asterisk/lock.h +++ b/include/asterisk/lock.h @@ -19,6 +19,17 @@ #define AST_PTHREADT_NULL (pthread_t) -1 #define AST_PTHREADT_STOP (pthread_t) -2 +/* From now on, Asterisk REQUIRES Recursive (not error checking) mutexes + and will not run without them. */ + +#ifdef PTHREAD_MUTEX_RECURSIVE_NP +#define AST_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +#define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP +#else +#define AST_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER +#define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE +#endif + #ifdef DEBUG_THREADS #ifdef THREAD_CRASH @@ -30,12 +41,6 @@ #include <stdio.h> #include <unistd.h> -/* From now on, Asterisk REQUIRES Recursive (not error checking) mutexes - and will not run without them. */ - -#define AST_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP -#define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP - struct ast_mutex_info { pthread_mutex_t mutex; char *file; @@ -155,11 +160,6 @@ static inline int __ast_pthread_mutex_destroy(char *filename, int lineno, char * #else /* DEBUG_THREADS */ -/* From now on, Asterisk REQUIRES Recursive (not error checking) mutexes - and will not run without them. */ -#define AST_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP -#define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP - typedef pthread_mutex_t ast_mutex_t; #define ast_mutex_lock(t) pthread_mutex_lock(t)