doubango/thirdparties/common/include/libxml/threads.h
c732d49e
 /**
  * Summary: interfaces for thread handling
  * Description: set of generic threading related routines
  *              should work with pthreads, Windows native or TLS threads
  *
  * Copy: See Copyright for the status of this software.
  *
  * Author: Daniel Veillard
  */
 
 #ifndef __XML_THREADS_H__
 #define __XML_THREADS_H__
 
 #include <libxml/xmlversion.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /*
  * xmlMutex are a simple mutual exception locks.
  */
 typedef struct _xmlMutex xmlMutex;
 typedef xmlMutex *xmlMutexPtr;
 
 /*
  * xmlRMutex are reentrant mutual exception locks.
  */
 typedef struct _xmlRMutex xmlRMutex;
 typedef xmlRMutex *xmlRMutexPtr;
 
 #ifdef __cplusplus
 }
 #endif
 #include <libxml/globals.h>
 #ifdef __cplusplus
 extern "C" {
 #endif
 XMLPUBFUN xmlMutexPtr XMLCALL
 			xmlNewMutex	(void);
 XMLPUBFUN void XMLCALL
 			xmlMutexLock	(xmlMutexPtr tok);
 XMLPUBFUN void XMLCALL
 			xmlMutexUnlock	(xmlMutexPtr tok);
 XMLPUBFUN void XMLCALL
 			xmlFreeMutex	(xmlMutexPtr tok);
 
 XMLPUBFUN xmlRMutexPtr XMLCALL
 			xmlNewRMutex	(void);
 XMLPUBFUN void XMLCALL
 			xmlRMutexLock	(xmlRMutexPtr tok);
 XMLPUBFUN void XMLCALL
 			xmlRMutexUnlock	(xmlRMutexPtr tok);
 XMLPUBFUN void XMLCALL
 			xmlFreeRMutex	(xmlRMutexPtr tok);
 
 /*
  * Library wide APIs.
  */
 XMLPUBFUN void XMLCALL
 			xmlInitThreads	(void);
 XMLPUBFUN void XMLCALL
 			xmlLockLibrary	(void);
 XMLPUBFUN void XMLCALL
 			xmlUnlockLibrary(void);
 XMLPUBFUN int XMLCALL
 			xmlGetThreadId	(void);
 XMLPUBFUN int XMLCALL
 			xmlIsMainThread	(void);
 XMLPUBFUN void XMLCALL
 			xmlCleanupThreads(void);
 XMLPUBFUN xmlGlobalStatePtr XMLCALL
 			xmlGetGlobalState(void);
 
 #if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL)
 int XMLCALL xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved);
 #endif
 
 #ifdef __cplusplus
 }
 #endif
 
 
 #endif /* __XML_THREADS_H__ */