|
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 #ifdef __cplusplus |
|
33 } |
|
34 #endif |
|
35 #include <libxml/globals.h> |
|
36 #ifdef __cplusplus |
|
37 extern "C" { |
|
38 #endif |
|
39 XMLPUBFUN xmlMutexPtr XMLCALL |
|
40 xmlNewMutex (void); |
|
41 XMLPUBFUN void XMLCALL |
|
42 xmlMutexLock (xmlMutexPtr tok); |
|
43 XMLPUBFUN void XMLCALL |
|
44 xmlMutexUnlock (xmlMutexPtr tok); |
|
45 XMLPUBFUN void XMLCALL |
|
46 xmlFreeMutex (xmlMutexPtr tok); |
|
47 |
|
48 XMLPUBFUN xmlRMutexPtr XMLCALL |
|
49 xmlNewRMutex (void); |
|
50 XMLPUBFUN void XMLCALL |
|
51 xmlRMutexLock (xmlRMutexPtr tok); |
|
52 XMLPUBFUN void XMLCALL |
|
53 xmlRMutexUnlock (xmlRMutexPtr tok); |
|
54 XMLPUBFUN void XMLCALL |
|
55 xmlFreeRMutex (xmlRMutexPtr tok); |
|
56 |
|
57 /* |
|
58 * Library wide APIs. |
|
59 */ |
|
60 XMLPUBFUN void XMLCALL |
|
61 xmlInitThreads (void); |
|
62 XMLPUBFUN void XMLCALL |
|
63 xmlLockLibrary (void); |
|
64 XMLPUBFUN void XMLCALL |
|
65 xmlUnlockLibrary(void); |
|
66 XMLPUBFUN int XMLCALL |
|
67 xmlGetThreadId (void); |
|
68 XMLPUBFUN int XMLCALL |
|
69 xmlIsMainThread (void); |
|
70 XMLPUBFUN void XMLCALL |
|
71 xmlCleanupThreads(void); |
|
72 XMLPUBFUN xmlGlobalStatePtr XMLCALL |
|
73 xmlGetGlobalState(void); |
|
74 |
|
75 #ifdef __cplusplus |
|
76 } |
|
77 #endif |
|
78 |
|
79 |
|
80 #endif /* __XML_THREADS_H__ */ |