Path: blob/master/venv/Lib/site-packages/lxml/includes/libxml/threads.h
811 views
/**1* Summary: interfaces for thread handling2* Description: set of generic threading related routines3* should work with pthreads, Windows native or TLS threads4*5* Copy: See Copyright for the status of this software.6*7* Author: Daniel Veillard8*/910#ifndef __XML_THREADS_H__11#define __XML_THREADS_H__1213#include <libxml/xmlversion.h>1415#ifdef __cplusplus16extern "C" {17#endif1819/*20* xmlMutex are a simple mutual exception locks.21*/22typedef struct _xmlMutex xmlMutex;23typedef xmlMutex *xmlMutexPtr;2425/*26* xmlRMutex are reentrant mutual exception locks.27*/28typedef struct _xmlRMutex xmlRMutex;29typedef xmlRMutex *xmlRMutexPtr;3031#ifdef __cplusplus32}33#endif34#include <libxml/globals.h>35#ifdef __cplusplus36extern "C" {37#endif38XMLPUBFUN xmlMutexPtr XMLCALL39xmlNewMutex (void);40XMLPUBFUN void XMLCALL41xmlMutexLock (xmlMutexPtr tok);42XMLPUBFUN void XMLCALL43xmlMutexUnlock (xmlMutexPtr tok);44XMLPUBFUN void XMLCALL45xmlFreeMutex (xmlMutexPtr tok);4647XMLPUBFUN xmlRMutexPtr XMLCALL48xmlNewRMutex (void);49XMLPUBFUN void XMLCALL50xmlRMutexLock (xmlRMutexPtr tok);51XMLPUBFUN void XMLCALL52xmlRMutexUnlock (xmlRMutexPtr tok);53XMLPUBFUN void XMLCALL54xmlFreeRMutex (xmlRMutexPtr tok);5556/*57* Library wide APIs.58*/59XMLPUBFUN void XMLCALL60xmlInitThreads (void);61XMLPUBFUN void XMLCALL62xmlLockLibrary (void);63XMLPUBFUN void XMLCALL64xmlUnlockLibrary(void);65XMLPUBFUN int XMLCALL66xmlGetThreadId (void);67XMLPUBFUN int XMLCALL68xmlIsMainThread (void);69XMLPUBFUN void XMLCALL70xmlCleanupThreads(void);71XMLPUBFUN xmlGlobalStatePtr XMLCALL72xmlGetGlobalState(void);7374#if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL)75int XMLCALL xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved);76#endif7778#ifdef __cplusplus79}80#endif818283#endif /* __XML_THREADS_H__ */848586