summaryrefslogtreecommitdiff
path: root/chromium/third_party/libxml/src/include/private/threads.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/libxml/src/include/private/threads.h')
-rw-r--r--chromium/third_party/libxml/src/include/private/threads.h48
1 files changed, 45 insertions, 3 deletions
diff --git a/chromium/third_party/libxml/src/include/private/threads.h b/chromium/third_party/libxml/src/include/private/threads.h
index c054a6fb956..b337bfa0b6d 100644
--- a/chromium/third_party/libxml/src/include/private/threads.h
+++ b/chromium/third_party/libxml/src/include/private/threads.h
@@ -1,8 +1,50 @@
#ifndef XML_THREADS_H_PRIVATE__
#define XML_THREADS_H_PRIVATE__
-void __xmlGlobalInitMutexLock(void);
-void __xmlGlobalInitMutexUnlock(void);
-void __xmlGlobalInitMutexDestroy(void);
+#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__ */