Return to threads.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml |
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__ */