2001-10-12 17:29:10 +00:00
/**
2003-11-18 20:56:51 +00:00
* Summary : interfaces for thread handling
* Description : set of generic threading related routines
* should work with pthreads , Windows native or TLS threads
2001-10-12 17:29:10 +00:00
*
2003-11-18 20:56:51 +00:00
* Copy : See Copyright for the status of this software .
2001-10-12 17:29:10 +00:00
*
2003-11-18 20:56:51 +00:00
* Author : Daniel Veillard
2001-10-12 17:29:10 +00:00
*/
# ifndef __XML_THREADS_H__
# define __XML_THREADS_H__
2003-08-25 09:05:12 +00:00
# include <libxml/xmlversion.h>
2001-10-12 17:29:10 +00:00
# ifdef __cplusplus
extern " C " {
# endif
/*
2002-03-12 18:46:39 +00:00
* xmlMutex are a simple mutual exception locks .
2001-10-12 17:29:10 +00:00
*/
typedef struct _xmlMutex xmlMutex ;
typedef xmlMutex * xmlMutexPtr ;
/*
2002-03-12 18:46:39 +00:00
* xmlRMutex are reentrant mutual exception locks .
2001-10-12 17:29:10 +00:00
*/
typedef struct _xmlRMutex xmlRMutex ;
typedef xmlRMutex * xmlRMutexPtr ;
2002-02-11 08:54:05 +00:00
# ifdef __cplusplus
}
# endif
# include <libxml/globals.h>
# ifdef __cplusplus
extern " C " {
# endif
2008-03-31 09:26:00 +00:00
XMLPUBFUN xmlMutexPtr XMLCALL
2003-08-25 09:05:12 +00:00
xmlNewMutex ( void ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlMutexLock ( xmlMutexPtr tok ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlMutexUnlock ( xmlMutexPtr tok ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlFreeMutex ( xmlMutexPtr tok ) ;
2002-02-11 08:54:05 +00:00
2008-03-31 09:26:00 +00:00
XMLPUBFUN xmlRMutexPtr XMLCALL
2003-08-27 08:59:58 +00:00
xmlNewRMutex ( void ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlRMutexLock ( xmlRMutexPtr tok ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlRMutexUnlock ( xmlRMutexPtr tok ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlFreeRMutex ( xmlRMutexPtr tok ) ;
2001-10-12 17:29:10 +00:00
/*
2002-03-12 18:46:39 +00:00
* Library wide APIs .
2001-10-12 17:29:10 +00:00
*/
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlInitThreads ( void ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlLockLibrary ( void ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlUnlockLibrary ( void ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN int XMLCALL
2003-08-27 08:59:58 +00:00
xmlGetThreadId ( void ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN int XMLCALL
2003-08-27 08:59:58 +00:00
xmlIsMainThread ( void ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN void XMLCALL
2003-08-27 08:59:58 +00:00
xmlCleanupThreads ( void ) ;
2008-03-31 09:26:00 +00:00
XMLPUBFUN xmlGlobalStatePtr XMLCALL
2003-08-27 08:59:58 +00:00
xmlGetGlobalState ( void ) ;
2001-10-12 17:29:10 +00:00
2007-06-08 19:36:04 +00:00
# if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL)
int XMLCALL xmlDllMain ( void * hinstDLL , unsigned long fdwReason , void * lpvReserved ) ;
# endif
2001-10-12 17:29:10 +00:00
# ifdef __cplusplus
}
# endif
# endif /* __XML_THREADS_H__ */