(root)/
libxml2-2.12.3/
include/
libxml/
threads.h
       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  XMLPUBFUN int
      33  			xmlCheckThreadLocalStorage(void);
      34  
      35  XMLPUBFUN xmlMutexPtr
      36  			xmlNewMutex	(void);
      37  XMLPUBFUN void
      38  			xmlMutexLock	(xmlMutexPtr tok);
      39  XMLPUBFUN void
      40  			xmlMutexUnlock	(xmlMutexPtr tok);
      41  XMLPUBFUN void
      42  			xmlFreeMutex	(xmlMutexPtr tok);
      43  
      44  XMLPUBFUN xmlRMutexPtr
      45  			xmlNewRMutex	(void);
      46  XMLPUBFUN void
      47  			xmlRMutexLock	(xmlRMutexPtr tok);
      48  XMLPUBFUN void
      49  			xmlRMutexUnlock	(xmlRMutexPtr tok);
      50  XMLPUBFUN void
      51  			xmlFreeRMutex	(xmlRMutexPtr tok);
      52  
      53  /*
      54   * Library wide APIs.
      55   */
      56  XML_DEPRECATED
      57  XMLPUBFUN void
      58  			xmlInitThreads	(void);
      59  XMLPUBFUN void
      60  			xmlLockLibrary	(void);
      61  XMLPUBFUN void
      62  			xmlUnlockLibrary(void);
      63  XML_DEPRECATED
      64  XMLPUBFUN int
      65  			xmlGetThreadId	(void);
      66  XML_DEPRECATED
      67  XMLPUBFUN int
      68  			xmlIsMainThread	(void);
      69  XML_DEPRECATED
      70  XMLPUBFUN void
      71  			xmlCleanupThreads(void);
      72  
      73  /** DOC_DISABLE */
      74  #if defined(LIBXML_THREAD_ENABLED) && defined(_WIN32) && \
      75      defined(LIBXML_STATIC_FOR_DLL)
      76  int
      77  xmlDllMain(void *hinstDLL, unsigned long fdwReason,
      78             void *lpvReserved);
      79  #endif
      80  /** DOC_ENABLE */
      81  
      82  #ifdef __cplusplus
      83  }
      84  #endif
      85  
      86  
      87  #endif /* __XML_THREADS_H__ */