Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 10:41:50

0001 /**
0002  * Summary: interfaces for thread handling
0003  * Description: set of generic threading related routines
0004  *              should work with pthreads, Windows native or TLS threads
0005  *
0006  * Copy: See Copyright for the status of this software.
0007  *
0008  * Author: Daniel Veillard
0009  */
0010 
0011 #ifndef __XML_THREADS_H__
0012 #define __XML_THREADS_H__
0013 
0014 #include <libxml/xmlversion.h>
0015 
0016 #ifdef __cplusplus
0017 extern "C" {
0018 #endif
0019 
0020 /*
0021  * xmlMutex are a simple mutual exception locks.
0022  */
0023 typedef struct _xmlMutex xmlMutex;
0024 typedef xmlMutex *xmlMutexPtr;
0025 
0026 /*
0027  * xmlRMutex are reentrant mutual exception locks.
0028  */
0029 typedef struct _xmlRMutex xmlRMutex;
0030 typedef xmlRMutex *xmlRMutexPtr;
0031 
0032 XMLPUBFUN int
0033             xmlCheckThreadLocalStorage(void);
0034 
0035 XMLPUBFUN xmlMutexPtr
0036             xmlNewMutex (void);
0037 XMLPUBFUN void
0038             xmlMutexLock    (xmlMutexPtr tok);
0039 XMLPUBFUN void
0040             xmlMutexUnlock  (xmlMutexPtr tok);
0041 XMLPUBFUN void
0042             xmlFreeMutex    (xmlMutexPtr tok);
0043 
0044 XMLPUBFUN xmlRMutexPtr
0045             xmlNewRMutex    (void);
0046 XMLPUBFUN void
0047             xmlRMutexLock   (xmlRMutexPtr tok);
0048 XMLPUBFUN void
0049             xmlRMutexUnlock (xmlRMutexPtr tok);
0050 XMLPUBFUN void
0051             xmlFreeRMutex   (xmlRMutexPtr tok);
0052 
0053 /*
0054  * Library wide APIs.
0055  */
0056 XML_DEPRECATED
0057 XMLPUBFUN void
0058             xmlInitThreads  (void);
0059 XMLPUBFUN void
0060             xmlLockLibrary  (void);
0061 XMLPUBFUN void
0062             xmlUnlockLibrary(void);
0063 XML_DEPRECATED
0064 XMLPUBFUN int
0065             xmlGetThreadId  (void);
0066 XML_DEPRECATED
0067 XMLPUBFUN int
0068             xmlIsMainThread (void);
0069 XML_DEPRECATED
0070 XMLPUBFUN void
0071             xmlCleanupThreads(void);
0072 
0073 /** DOC_DISABLE */
0074 #if defined(LIBXML_THREAD_ENABLED) && defined(_WIN32) && \
0075     defined(LIBXML_STATIC_FOR_DLL)
0076 int
0077 xmlDllMain(void *hinstDLL, unsigned long fdwReason,
0078            void *lpvReserved);
0079 #endif
0080 /** DOC_ENABLE */
0081 
0082 #ifdef __cplusplus
0083 }
0084 #endif
0085 
0086 
0087 #endif /* __XML_THREADS_H__ */