summaryrefslogtreecommitdiffstats
path: root/3rdparty/clucene/src/CLucene/LuceneThreads.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/clucene/src/CLucene/LuceneThreads.h')
-rw-r--r--3rdparty/clucene/src/CLucene/LuceneThreads.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/3rdparty/clucene/src/CLucene/LuceneThreads.h b/3rdparty/clucene/src/CLucene/LuceneThreads.h
new file mode 100644
index 000000000..cad07869f
--- /dev/null
+++ b/3rdparty/clucene/src/CLucene/LuceneThreads.h
@@ -0,0 +1,72 @@
+/*------------------------------------------------------------------------------
+* Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team
+*
+* Distributable under the terms of either the Apache License (Version 2.0) or
+* the GNU Lesser General Public License, as specified in the COPYING file.
+------------------------------------------------------------------------------*/
+#ifndef _LuceneThreads_h
+#define _LuceneThreads_h
+#if defined(_LUCENE_PRAGMA_ONCE)
+# pragma once
+#endif
+
+#if defined(_CL_DISABLE_MULTITHREADING)
+ #define SCOPED_LOCK_MUTEX(theMutex)
+ #define DEFINE_MUTEX(x)
+ #define STATIC_DEFINE_MUTEX(x)
+ #define _LUCENE_SLEEP(x)
+ #define _LUCENE_CURRTHREADID 1
+ #define _LUCENE_THREADID_TYPE char
+
+ CL_NS_DEF(util)
+ class CLuceneThreadIdCompare
+ {
+ public:
+ enum
+ { // parameters for hash table
+ bucket_size = 4, // 0 < bucket_size
+ min_buckets = 8
+ }; // min_buckets = 2 ^^ N, 0 < N
+
+ bool operator()( char t1, char t2 ) const{
+ return t1 < t2;
+ }
+ };
+ CL_NS_END
+#else
+
+ #if defined(_LUCENE_DONTIMPLEMENT_THREADMUTEX)
+ //do nothing
+ #elif defined(_CL_HAVE_PTHREAD)
+ #include "CLucene/config/threadPthread.h"
+ #elif defined(_CL_HAVE_WIN32_THREADS) || defined(_CLCOMPILER_MSVC) || defined(__MINGW32__) //note that mingw32 could have pthreads, so put this after.
+ #if !defined(_CL_HAVE_WIN32_THREADS)
+ #define _CL_HAVE_WIN32_THREADS
+ #endif
+ #include "CLucene/config/threadCSection.h"
+ #else
+ #error A valid thread library was not found
+ #endif //mutex types
+
+ CL_NS_DEF(util)
+ /** @internal */
+ class mutexGuard
+ {
+ private:
+ _LUCENE_THREADMUTEX* mrMutex;
+ mutexGuard(const mutexGuard& clone);
+ public:
+ mutexGuard( _LUCENE_THREADMUTEX& rMutex );
+ ~mutexGuard();
+ };
+ CL_NS_END
+
+ #define SCOPED_LOCK_MUTEX(theMutex) CL_NS(util)::mutexGuard theMutexGuard(theMutex);
+ #define DEFINE_MUTEX(theMutex) _LUCENE_THREADMUTEX theMutex;
+ #define STATIC_DEFINE_MUTEX(theMutex) static _LUCENE_THREADMUTEX theMutex;
+
+#endif //_CL_DISABLE_MULTITHREADING
+
+
+
+#endif