123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /**
- * 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__ */
|