Annotation of embedaddon/libxml2/include/libxml/threads.h, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>