50 lines
1,001 B
C
50 lines
1,001 B
C
#ifndef XML_THREADS_H_PRIVATE__
|
|
#define XML_THREADS_H_PRIVATE__
|
|
|
|
#include <libxml/threads.h>
|
|
|
|
#ifdef LIBXML_THREAD_ENABLED
|
|
#ifdef HAVE_PTHREAD_H
|
|
#include <pthread.h>
|
|
#define HAVE_POSIX_THREADS
|
|
#elif defined(_WIN32)
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#include <windows.h>
|
|
#ifndef HAVE_COMPILER_TLS
|
|
#include <process.h>
|
|
#endif
|
|
#define HAVE_WIN32_THREADS
|
|
#endif
|
|
#endif
|
|
|
|
/*
|
|
* xmlMutex are a simple mutual exception locks
|
|
*/
|
|
struct _xmlMutex {
|
|
#ifdef HAVE_POSIX_THREADS
|
|
pthread_mutex_t lock;
|
|
#elif defined HAVE_WIN32_THREADS
|
|
CRITICAL_SECTION cs;
|
|
#else
|
|
int empty;
|
|
#endif
|
|
};
|
|
|
|
XML_HIDDEN void
|
|
__xmlGlobalInitMutexLock(void);
|
|
XML_HIDDEN void
|
|
__xmlGlobalInitMutexUnlock(void);
|
|
XML_HIDDEN void
|
|
__xmlGlobalInitMutexDestroy(void);
|
|
|
|
XML_HIDDEN void
|
|
xmlInitThreadsInternal(void);
|
|
XML_HIDDEN void
|
|
xmlCleanupThreadsInternal(void);
|
|
|
|
XML_HIDDEN void
|
|
xmlInitMutex(xmlMutexPtr mutex);
|
|
XML_HIDDEN void
|
|
xmlCleanupMutex(xmlMutexPtr mutex);
|
|
|
|
#endif /* XML_THREADS_H_PRIVATE__ */
|