fixes for multi thread support
[NeonServV5.git] / src / main.h
index 879f46c5c70852be87521c10f2d1e7fda5082ea7..5002bcd6d0b3391e061be8a7b1ca649f7d9ca64e 100644 (file)
@@ -21,6 +21,7 @@
 #define NEONSERV_VERSION "5.3"
 #define VERSION_PATCHLEVEL 543
 
+#include <features.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/time.h>
 #include <time.h>
 #ifdef HAVE_THREADS
+#include <pthread.h>
+#include <sys/syscall.h>
 #define THREAD_MUTEX_INIT(var) { \
     pthread_mutexattr_t mutex_attr; \
     pthread_mutexattr_init(&mutex_attr);\
-    pthread_mutexattr_setkind_np(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);\
-    pthread_mutex_init(&var, mutex_attr); \
+    pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);\
+    pthread_mutex_init(&var, &mutex_attr); \
 }
 #define SYNCHRONIZE(var) pthread_mutex_lock(&var)
 #define DESYNCHRONIZE(var) pthread_mutex_unlock(&var)
-#include <pthread.h>
 #else
 #define THREAD_MUTEX_INIT(var)
 #define SYNCHRONIZE(var)
 
 extern time_t start_time;
 extern int statistics_enabled;
+#ifdef HAVE_THREADS
+extern int running_threads;
+#endif
 
 int stricmp (const char *s1, const char *s2);
 int stricmplen (const char *s1, const char *s2, int len);