/app/libxml2-2.4.28/include/libxml2/libxml/threads.h


    1 /**
    2  * threads.c: set of generic threading related routines 
    3  *
    4  * See Copyright for the status of this software.
    5  *
    6  * daniel@veillard.com
    7  */
    8 
    9 #ifndef __XML_THREADS_H__
   10 #define __XML_THREADS_H__
   11 
   12 #ifdef __cplusplus
   13 extern "C" {
   14 #endif
   15 
   16 /*
   17  * xmlMutex are a simple mutual exception locks.
   18  */
   19 typedef struct _xmlMutex xmlMutex;
   20 typedef xmlMutex *xmlMutexPtr;
   21 
   22 /*
   23  * xmlRMutex are reentrant mutual exception locks.
   24  */
   25 typedef struct _xmlRMutex xmlRMutex;
   26 typedef xmlRMutex *xmlRMutexPtr;
   27 
   28 #ifdef __cplusplus
   29 }
   30 #endif
   31 #include <libxml/globals.h>
   32 #ifdef __cplusplus
   33 extern "C" {
   34 #endif
   35 
   36 xmlMutexPtr		xmlNewMutex	(void);
   37 void			xmlMutexLock	(xmlMutexPtr tok);
   38 void			xmlMutexUnlock	(xmlMutexPtr tok);
   39 void			xmlFreeMutex	(xmlMutexPtr tok);
   40 
   41 xmlRMutexPtr		xmlNewRMutex	(void);
   42 void			xmlRMutexLock	(xmlRMutexPtr tok);
   43 void			xmlRMutexUnlock	(xmlRMutexPtr tok);
   44 void			xmlFreeRMutex	(xmlRMutexPtr tok);
   45 
   46 /*
   47  * Library wide APIs.
   48  */
   49 void			xmlInitThreads	(void);
   50 void			xmlLockLibrary	(void);
   51 void			xmlUnlockLibrary(void);
   52 int			xmlGetThreadId	(void);
   53 int			xmlIsMainThread	(void);
   54 void			xmlCleanupThreads(void);
   55 xmlGlobalStatePtr	xmlGetGlobalState(void);
   56 
   57 #ifdef __cplusplus
   58 }
   59 #endif
   60 
   61 
   62 #endif /* __XML_THREADS_H__ */