xref: /aosp_15_r20/external/libxml2/include/libxml/threads.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1 /**
2  * Summary: interfaces for thread handling
3  * Description: set of generic threading related routines
4  *              should work with pthreads, Windows native or TLS threads
5  *
6  * Copy: See Copyright for the status of this software.
7  *
8  * Author: Daniel Veillard
9  */
10 
11 #ifndef __XML_THREADS_H__
12 #define __XML_THREADS_H__
13 
14 #include <libxml/xmlversion.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /*
21  * xmlMutex are a simple mutual exception locks.
22  */
23 typedef struct _xmlMutex xmlMutex;
24 typedef xmlMutex *xmlMutexPtr;
25 
26 /*
27  * xmlRMutex are reentrant mutual exception locks.
28  */
29 typedef struct _xmlRMutex xmlRMutex;
30 typedef xmlRMutex *xmlRMutexPtr;
31 
32 XMLPUBFUN int
33 			xmlCheckThreadLocalStorage(void);
34 
35 XMLPUBFUN xmlMutexPtr
36 			xmlNewMutex	(void);
37 XMLPUBFUN void
38 			xmlMutexLock	(xmlMutexPtr tok);
39 XMLPUBFUN void
40 			xmlMutexUnlock	(xmlMutexPtr tok);
41 XMLPUBFUN void
42 			xmlFreeMutex	(xmlMutexPtr tok);
43 
44 XMLPUBFUN xmlRMutexPtr
45 			xmlNewRMutex	(void);
46 XMLPUBFUN void
47 			xmlRMutexLock	(xmlRMutexPtr tok);
48 XMLPUBFUN void
49 			xmlRMutexUnlock	(xmlRMutexPtr tok);
50 XMLPUBFUN void
51 			xmlFreeRMutex	(xmlRMutexPtr tok);
52 
53 /*
54  * Library wide APIs.
55  */
56 XML_DEPRECATED
57 XMLPUBFUN void
58 			xmlInitThreads	(void);
59 XMLPUBFUN void
60 			xmlLockLibrary	(void);
61 XMLPUBFUN void
62 			xmlUnlockLibrary(void);
63 XML_DEPRECATED
64 XMLPUBFUN int
65 			xmlGetThreadId	(void);
66 XML_DEPRECATED
67 XMLPUBFUN int
68 			xmlIsMainThread	(void);
69 XML_DEPRECATED
70 XMLPUBFUN void
71 			xmlCleanupThreads(void);
72 
73 /** DOC_DISABLE */
74 #if defined(LIBXML_THREAD_ENABLED) && defined(_WIN32) && \
75     defined(LIBXML_STATIC_FOR_DLL)
76 int
77 xmlDllMain(void *hinstDLL, unsigned long fdwReason,
78            void *lpvReserved);
79 #endif
80 /** DOC_ENABLE */
81 
82 #ifdef __cplusplus
83 }
84 #endif
85 
86 
87 #endif /* __XML_THREADS_H__ */
88