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