Annotation of embedaddon/libxml2/include/libxml/threads.h, revision 1.1.1.1
1.1 misho 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: #if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL)
76: int XMLCALL xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved);
77: #endif
78:
79: #ifdef __cplusplus
80: }
81: #endif
82:
83:
84: #endif /* __XML_THREADS_H__ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>