diff options
Diffstat (limited to 'compat/mutex.cpp')
-rw-r--r-- | compat/mutex.cpp | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/compat/mutex.cpp b/compat/mutex.cpp index 664677ea..71f42329 100644 --- a/compat/mutex.cpp +++ b/compat/mutex.cpp @@ -1,33 +1,31 @@ +#include "export.hpp" #include "mutex.hpp" #include <cstdlib> +#include <QMutex> +#include <QRecursiveMutex> -mutex& mutex::operator=(const mutex& rhs) +template<typename M> +mutex<M>& mutex<M>::operator=(const mutex& rhs) { - if (rhs->isRecursive() != inner.isRecursive()) - std::abort(); - return *this; } -mutex::mutex(const mutex& datum) : mutex{datum.inner.isRecursive() ? Recursive : NonRecursive} -{ -} +template<typename MutexType> MutexType* mutex<MutexType>::operator&() const { return &inner; } -mutex::mutex(RecursionMode m) : inner{m} -{ -} +template<typename M> mutex<M>::mutex(const mutex<M>& datum) {} +template<typename M> mutex<M>::mutex() = default; -QMutex* mutex::operator&() const noexcept +template<typename M> +mutex<M>::operator M*() const noexcept { return &inner; } -mutex::operator QMutex*() const noexcept +template<typename M> +M* mutex<M>::operator->() const noexcept { return &inner; } -QMutex* mutex::operator->() const noexcept -{ - return &inner; -} +template class OTR_COMPAT_EXPORT mutex<QMutex>; +template class OTR_COMPAT_EXPORT mutex<QRecursiveMutex>; |