Release guard after transaction

This commit is contained in:
Piotr Wójcik 2024-11-04 11:44:20 +01:00
commit 591e0cae68

View file

@ -29,17 +29,18 @@ public:
virtual operator const nano::store::transaction & () const = 0;
};
class write_transaction : public transaction
class write_transaction final : public transaction
{
nano::store::write_guard guard; // Guard should be released after the transaction
nano::store::write_transaction txn;
nano::store::write_guard guard;
std::chrono::steady_clock::time_point start;
public:
explicit write_transaction (nano::store::write_transaction && txn, nano::store::write_guard && guard) noexcept :
txn{ std::move (txn) },
guard{ std::move (guard) }
explicit write_transaction (nano::store::write_transaction && txn_a, nano::store::write_guard && guard_a) noexcept :
guard{ std::move (guard_a) },
txn{ std::move (txn_a) }
{
debug_assert (guard.is_owned ());
start = std::chrono::steady_clock::now ();
}
@ -97,7 +98,7 @@ public:
}
};
class read_transaction : public transaction
class read_transaction final : public transaction
{
nano::store::read_transaction txn;
@ -140,4 +141,4 @@ public:
return txn;
}
};
} // namespace nano::secure
}