imgtools/imgcheck/libxml/threads.h
changeset 0 044383f39525
equal deleted inserted replaced
-1:000000000000 0:044383f39525
       
     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 #ifdef __cplusplus
       
    76 }
       
    77 #endif
       
    78 
       
    79 
       
    80 #endif /* __XML_THREADS_H__ */