Release guard after transaction
This commit is contained in:
parent
a6d7d1ce66
commit
591e0cae68
1 changed files with 8 additions and 7 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue