Fixed data race in tx mempool

This commit is contained in:
SChernykh
2024-03-07 17:48:49 +01:00
parent e82fe8cdc1
commit 29d84e3bcf
3 changed files with 26 additions and 14 deletions

View File

@@ -34,7 +34,23 @@ public:
void add(const TxMempoolData& tx);
void swap(std::vector<TxMempoolData>& transactions);
public:
size_t size() const
{
ReadLock lock(m_lock);
return m_transactions.size();
}
template<typename T>
void iterate(T&& callback) const
{
ReadLock lock(m_lock);
for (const auto& it : m_transactions) {
callback(it.first, it.second);
}
}
private:
mutable uv_rwlock_t m_lock;
unordered_map<hash, TxMempoolData> m_transactions;
};