|
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 * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. |
|
10 */ |
|
11 |
|
12 /** @file |
|
13 @publishedAll |
|
14 @released |
|
15 */ |
|
16 |
|
17 #ifndef XML_THREADS_H |
|
18 #define XML_THREADS_H |
|
19 |
|
20 #include <libxml2_globals.h> |
|
21 |
|
22 #ifdef __cplusplus |
|
23 extern "C" { |
|
24 #endif |
|
25 |
|
26 /* |
|
27 * xmlMutex are a simple mutual exception locks. |
|
28 */ |
|
29 typedef struct _xmlMutex xmlMutex; |
|
30 typedef xmlMutex *xmlMutexPtr; |
|
31 |
|
32 /* |
|
33 * xmlRMutex are reentrant mutual exception locks. |
|
34 */ |
|
35 typedef struct _xmlRMutex xmlRMutex; |
|
36 typedef xmlRMutex *xmlRMutexPtr; |
|
37 |
|
38 XMLPUBFUN xmlMutexPtr XMLCALL |
|
39 xmlNewMutex (void); |
|
40 XMLPUBFUN void XMLCALL |
|
41 xmlMutexLock (xmlMutexPtr tok); |
|
42 XMLPUBFUN void XMLCALL |
|
43 xmlMutexUnlock (xmlMutexPtr tok); |
|
44 XMLPUBFUN void XMLCALL |
|
45 xmlFreeMutex (xmlMutexPtr tok); |
|
46 |
|
47 XMLPUBFUN xmlRMutexPtr XMLCALL |
|
48 xmlNewRMutex (void); |
|
49 XMLPUBFUN void XMLCALL |
|
50 xmlRMutexLock (xmlRMutexPtr tok); |
|
51 XMLPUBFUN void XMLCALL |
|
52 xmlRMutexUnlock (xmlRMutexPtr tok); |
|
53 |
|
54 |
|
55 #ifndef XMLENGINE_EXCLUDE_UNUSED |
|
56 XMLPUBFUN void XMLCALL |
|
57 xmlFreeRMutex (xmlRMutexPtr tok); |
|
58 #endif /* ifndef XMLENGINE_EXCLUDE_UNUSED */ |
|
59 |
|
60 /* |
|
61 * Library wide APIs. |
|
62 */ |
|
63 XMLPUBFUN void XMLCALL |
|
64 xmlInitThreads (void); |
|
65 XMLPUBFUN void XMLCALL |
|
66 xmlLockLibrary (void); |
|
67 XMLPUBFUN void XMLCALL |
|
68 xmlUnlockLibrary(void); |
|
69 XMLPUBFUN int XMLCALL |
|
70 xmlGetThreadId (void); |
|
71 XMLPUBFUN int XMLCALL |
|
72 xmlIsMainThread (void); |
|
73 XMLPUBFUN void XMLCALL |
|
74 xmlCleanupThreads(void); |
|
75 XMLPUBFUN xmlGlobalStatePtr XMLCALL |
|
76 xmlGetGlobalState(void); |
|
77 |
|
78 #ifdef __cplusplus |
|
79 } |
|
80 #endif |
|
81 |
|
82 |
|
83 #endif /* XML_THREADS_H */ |
|
84 |