Move LockSet::release into header
This commit is contained in:
+24
-2
@@ -7,7 +7,7 @@
|
|||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <spinLock.h>
|
#include <qutex.h>
|
||||||
#include <lockerAndInvokerBase.h>
|
#include <lockerAndInvokerBase.h>
|
||||||
|
|
||||||
namespace smo {
|
namespace smo {
|
||||||
@@ -89,7 +89,29 @@ public:
|
|||||||
void unregisterFromQutexQueues();
|
void unregisterFromQutexQueues();
|
||||||
|
|
||||||
// @brief Release all locks
|
// @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
|
const LockUsageDesc &getLockUsageDesc(const Qutex &criterionLock) const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -113,29 +113,4 @@ void LockSet<OriginalCbFnT>::unregisterFromQutexQueues()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class OriginalCbFnT>
|
|
||||||
void LockSet<OriginalCbFnT>::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
|
} // namespace smo
|
||||||
|
|||||||
Reference in New Issue
Block a user