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;  <typedef:xmlMutex>
    20 typedef xmlMutex *xmlMutexPtr;  <typedef:xmlMutexPtr>
    21 
    22 /*
    23  * xmlRMutex are reentrant mutual exception locks.
    24  */
    25 typedef struct _xmlRMutex xmlRMutex;  <typedef:xmlRMutex>
    26 typedef xmlRMutex *xmlRMutexPtr;  <typedef:xmlRMutexPtr>
    27 
    28 #ifdef __cplusplus
    29 }
    30 #endif
    31 #include 
    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__ */