Fix mutex when building with no threads.
This commit is contained in:
@ -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
|
||||
|
||||
template <class StdMutexType>
|
||||
class FakeMutex {
|
||||
|
||||
FakeMutex(){};
|
||||
};
|
||||
|
||||
template <class MutexT>
|
||||
class MutexImpl {
|
||||
public:
|
||||
_ALWAYS_INLINE_ void lock() const {}
|
||||
@ -87,14 +100,9 @@ public:
|
||||
explicit MutexLock(const MutexT &p_mutex) {}
|
||||
};
|
||||
|
||||
using Mutex = MutexImpl<FakeMutex>;
|
||||
using BinaryMutex = MutexImpl<FakeMutex>; // Non-recursive, handle with care
|
||||
|
||||
#endif // !NO_THREADS
|
||||
|
||||
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> >;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user