Annotation of embedaddon/libxml2/include/libxml/threads.h, revision 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>