From f505c7618967a08cf0448357d2720b8ab271cdc8 Mon Sep 17 00:00:00 2001 From: Dominik Gleich Date: Wed, 22 Mar 2017 14:19:10 +0100 Subject: [PATCH] Fix lock store bug. Summary: Lock store was not locking properly. It created a lock object which was destructed in the end of function scope which caused bits to be set to UNLOCKED. Reviewers: matej.gradicek, buda Reviewed By: matej.gradicek Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D154 --- src/transactions/lock_store.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/transactions/lock_store.hpp b/src/transactions/lock_store.hpp index e34e12825..cc0501b9c 100644 --- a/src/transactions/lock_store.hpp +++ b/src/transactions/lock_store.hpp @@ -39,11 +39,11 @@ class LockStore { public: template void take(T *lock, Args &&... args) { - auto holder = LockHolder(lock, std::forward(args)...); - - if (!holder.active()) return; - locks.emplace_back(LockHolder(lock, std::forward(args)...)); + if (!locks.back().active()) { + locks.pop_back(); + return; + } } private: