1 #ifndef XML_THREADS_H_PRIVATE__ 2 #define XML_THREADS_H_PRIVATE__ 3 4 #include <libxml/threads.h> 5 6 #ifdef LIBXML_THREAD_ENABLED 7 #ifdef HAVE_PTHREAD_H 8 #include <pthread.h> 9 #define HAVE_POSIX_THREADS 10 #elif defined(_WIN32) 11 #define WIN32_LEAN_AND_MEAN 12 #include <windows.h> 13 #define HAVE_WIN32_THREADS 14 #endif 15 #endif 16 17 /* 18 * xmlMutex are a simple mutual exception locks 19 */ 20 struct _xmlMutex { 21 #ifdef HAVE_POSIX_THREADS 22 pthread_mutex_t lock; 23 #elif defined HAVE_WIN32_THREADS 24 CRITICAL_SECTION cs; 25 #else 26 int empty; 27 #endif 28 }; 29 30 XML_HIDDEN void 31 xmlInitMutex(xmlMutexPtr mutex); 32 XML_HIDDEN void 33 xmlCleanupMutex(xmlMutexPtr mutex); 34 35 #endif /* XML_THREADS_H_PRIVATE__ */ 36