|
@@ -71,9 +71,22 @@ public:
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+using Mutex = MutexImpl<std::recursive_mutex>; // Recursive, for general use
|
|
|
|
+using BinaryMutex = MutexImpl<std::mutex>; // Non-recursive, handle with care
|
|
|
|
+
|
|
|
|
+extern template class MutexImpl<std::recursive_mutex>;
|
|
|
|
+extern template class MutexImpl<std::mutex>;
|
|
|
|
+extern template class MutexLock<MutexImpl<std::recursive_mutex> >;
|
|
|
|
+extern template class MutexLock<MutexImpl<std::mutex> >;
|
|
|
|
+
|
|
#else
|
|
#else
|
|
|
|
|
|
-template <class StdMutexType>
|
|
|
|
|
|
+class FakeMutex {
|
|
|
|
+
|
|
|
|
+ FakeMutex(){};
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+template <class MutexT>
|
|
class MutexImpl {
|
|
class MutexImpl {
|
|
public:
|
|
public:
|
|
_ALWAYS_INLINE_ void lock() const {}
|
|
_ALWAYS_INLINE_ void lock() const {}
|
|
@@ -87,14 +100,9 @@ public:
|
|
explicit MutexLock(const MutexT &p_mutex) {}
|
|
explicit MutexLock(const MutexT &p_mutex) {}
|
|
};
|
|
};
|
|
|
|
|
|
-#endif // !NO_THREADS
|
|
|
|
-
|
|
|
|
-using Mutex = MutexImpl<std::recursive_mutex>; // Recursive, for general use
|
|
|
|
-using BinaryMutex = MutexImpl<std::mutex>; // Non-recursive, handle with care
|
|
|
|
|
|
+using Mutex = MutexImpl<FakeMutex>;
|
|
|
|
+using BinaryMutex = MutexImpl<FakeMutex>; // Non-recursive, handle with care
|
|
|
|
|
|
-extern template class MutexImpl<std::recursive_mutex>;
|
|
|
|
-extern template class MutexImpl<std::mutex>;
|
|
|
|
-extern template class MutexLock<MutexImpl<std::recursive_mutex> >;
|
|
|
|
-extern template class MutexLock<MutexImpl<std::mutex> >;
|
|
|
|
|
|
+#endif // !NO_THREADS
|
|
|
|
|
|
#endif
|
|
#endif
|