File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml / threads.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:37:58 2012 UTC (12 years, 7 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, v2_8_0p0, v2_8_0, v2_7_8, HEAD
libxml2

    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>