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__ */