diff --git a/include/lockSet.h b/include/lockSet.h index 19dbedb..8ffcae6 100644 --- a/include/lockSet.h +++ b/include/lockSet.h @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include namespace smo { @@ -89,7 +89,29 @@ public: void unregisterFromQutexQueues(); // @brief Release all locks - void release(); + void release() + { + if (!registeredInQutexQueues) + { + throw std::runtime_error( + std::string(__func__) + + ": LockSet::release() called but not registered in Qutex " + "queues"); + } + + if (!allLocksAcquired) + { + throw std::runtime_error( + std::string(__func__) + + ": LockSet::release() called but allLocksAcquired is false"); + } + + for (auto& lockUsageDesc : locks) { + lockUsageDesc.first.get().release(); + } + + allLocksAcquired = false; + } const LockUsageDesc &getLockUsageDesc(const Qutex &criterionLock) const { diff --git a/smocore/lockSet.cpp b/smocore/lockSet.cpp index 15a98c6..732b3ee 100644 --- a/smocore/lockSet.cpp +++ b/smocore/lockSet.cpp @@ -113,29 +113,4 @@ void LockSet::unregisterFromQutexQueues() } } -template -void LockSet::release() -{ - if (!registeredInQutexQueues) - { - throw std::runtime_error( - std::string(__func__) + - ": LockSet::release() called but not registered in Qutex " - "queues"); - } - - if (!allLocksAcquired) - { - throw std::runtime_error( - std::string(__func__) + - ": LockSet::release() called but allLocksAcquired is false"); - } - - for (auto& lockUsageDesc : locks) { - lockUsageDesc.first.get().release(); - } - - allLocksAcquired = false; -} - } // namespace smo