pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);\
pthread_mutex_init(&var, &mutex_attr); \
}
+#define THREAD_MUTEX_INIT_TYPE(var, type) { \
+ pthread_mutexattr_t mutex_attr; \
+ pthread_mutexattr_init(&mutex_attr);\
+ pthread_mutexattr_settype(&mutex_attr, type);\
+ pthread_mutex_init(&var, &mutex_attr); \
+}
#define SYNCHRONIZE(var) pthread_mutex_lock(&var)
+#define SET_SYNCHRONIZE(var) pthread_mutex_trylock(&var)
#define DESYNCHRONIZE(var) pthread_mutex_unlock(&var)
#else
#define THREAD_MUTEX_INIT(var)
extern int statistics_enabled;
#ifdef HAVE_THREADS
extern int running_threads;
+extern pthread_mutex_t cache_sync;
+extern pthread_mutex_t whohandler_sync, whohandler_mass_sync;
#endif
int stricmp (const char *s1, const char *s2);