xml/libxml2libs/inc/libxml2/libxml2_threads.h
changeset 0 e35f40988205
child 24 74f0b3eb154c
equal deleted inserted replaced
-1:000000000000 0:e35f40988205
       
     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  * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. 
       
    10  */
       
    11 
       
    12 /** @file
       
    13 @publishedAll
       
    14 @released
       
    15 */
       
    16 
       
    17 #ifndef XML_THREADS_H
       
    18 #define XML_THREADS_H
       
    19 
       
    20 #include <libxml2_globals.h>
       
    21 
       
    22 #ifdef __cplusplus
       
    23 extern "C" {
       
    24 #endif
       
    25 
       
    26 /*
       
    27  * xmlMutex are a simple mutual exception locks.
       
    28  */
       
    29 typedef struct _xmlMutex xmlMutex;
       
    30 typedef xmlMutex *xmlMutexPtr;
       
    31 
       
    32 /*
       
    33  * xmlRMutex are reentrant mutual exception locks.
       
    34  */
       
    35 typedef struct _xmlRMutex xmlRMutex;
       
    36 typedef xmlRMutex *xmlRMutexPtr;
       
    37 
       
    38 XMLPUBFUN xmlMutexPtr XMLCALL
       
    39                         xmlNewMutex     (void);
       
    40 XMLPUBFUN void XMLCALL
       
    41                         xmlMutexLock    (xmlMutexPtr tok);
       
    42 XMLPUBFUN void XMLCALL
       
    43                         xmlMutexUnlock  (xmlMutexPtr tok);
       
    44 XMLPUBFUN void XMLCALL
       
    45                         xmlFreeMutex    (xmlMutexPtr tok);
       
    46 
       
    47 XMLPUBFUN xmlRMutexPtr XMLCALL
       
    48                         xmlNewRMutex    (void);
       
    49 XMLPUBFUN void XMLCALL
       
    50                         xmlRMutexLock   (xmlRMutexPtr tok);
       
    51 XMLPUBFUN void XMLCALL
       
    52                         xmlRMutexUnlock (xmlRMutexPtr tok);
       
    53 
       
    54 
       
    55 #ifndef XMLENGINE_EXCLUDE_UNUSED
       
    56 XMLPUBFUN void XMLCALL
       
    57                         xmlFreeRMutex   (xmlRMutexPtr tok);
       
    58 #endif /* ifndef XMLENGINE_EXCLUDE_UNUSED */
       
    59 
       
    60 /*
       
    61  * Library wide APIs.
       
    62  */
       
    63 XMLPUBFUN void XMLCALL
       
    64                         xmlInitThreads  (void);
       
    65 XMLPUBFUN void XMLCALL
       
    66                         xmlLockLibrary  (void);
       
    67 XMLPUBFUN void XMLCALL
       
    68                         xmlUnlockLibrary(void);
       
    69 XMLPUBFUN int XMLCALL
       
    70                         xmlGetThreadId  (void);
       
    71 XMLPUBFUN int XMLCALL
       
    72                         xmlIsMainThread (void);
       
    73 XMLPUBFUN void XMLCALL
       
    74                         xmlCleanupThreads(void);
       
    75 XMLPUBFUN xmlGlobalStatePtr XMLCALL
       
    76                         xmlGetGlobalState(void);
       
    77 
       
    78 #ifdef __cplusplus
       
    79 }
       
    80 #endif
       
    81 
       
    82 
       
    83 #endif /* XML_THREADS_H */
       
    84