X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2FIOEngine.h;h=411173a82c443283ec77f3f9ac460777be73fc3b;hp=f64078e83d4733587632f905509b5d2a800fcd99;hb=3218b969d5dd33bbd8defb30059d666f33284779;hpb=4b9de3472bf8bb35214bd3c31289b7c601304686 diff --git a/src/IOEngine.h b/src/IOEngine.h index f64078e..411173a 100644 --- a/src/IOEngine.h +++ b/src/IOEngine.h @@ -20,14 +20,25 @@ #ifdef HAVE_PTHREAD_H #include +#ifdef PTHREAD_MUTEX_RECURSIVE_NP +#define PTHREAD_MUTEX_RECURSIVE_VAL PTHREAD_MUTEX_RECURSIVE_NP +#else +#define PTHREAD_MUTEX_RECURSIVE_VAL PTHREAD_MUTEX_RECURSIVE +#endif #define IOTHREAD_MUTEX_INIT(var) { \ pthread_mutexattr_t mutex_attr; \ pthread_mutexattr_init(&mutex_attr);\ - pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);\ + pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_VAL);\ pthread_mutex_init(&var, &mutex_attr); \ } +#ifdef ENABLE_MUTEX_DEBUG +#include "mutexDebug.h" +#define IOSYNCHRONIZE(var) xmutex(1, &var, __FILE__, __LINE__); pthread_mutex_lock(&var) +#define IODESYNCHRONIZE(var) xmutex(0, &var, __FILE__, __LINE__); pthread_mutex_unlock(&var) +#else #define IOSYNCHRONIZE(var) pthread_mutex_lock(&var) #define IODESYNCHRONIZE(var) pthread_mutex_unlock(&var) +#endif #else #define IOTHREAD_MUTEX_INIT(var) #define IOSYNCHRONIZE(var)