xref: /aosp_15_r20/external/cronet/third_party/libxml/src/include/private/threads.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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