Fix snapshot count mismatch due to race

Former-commit-id: b4175c9bf82cbec047b94403e2a3700f4544b4f1
This commit is contained in:
John Sully 2021-11-10 05:29:13 +00:00
parent 1ebf62da26
commit ce2c49899d

View File

@ -170,6 +170,7 @@ bool RocksDBStorageProvider::enumerate(callback fn) const
const IStorage *RocksDBStorageProvider::clone() const const IStorage *RocksDBStorageProvider::clone() const
{ {
std::unique_lock<fastlock> l(m_lock);
const rocksdb::Snapshot *psnapshot = const_cast<RocksDBStorageProvider*>(this)->m_spdb->GetSnapshot(); const rocksdb::Snapshot *psnapshot = const_cast<RocksDBStorageProvider*>(this)->m_spdb->GetSnapshot();
return new RocksDBStorageProvider(m_pfactory, const_cast<RocksDBStorageProvider*>(this)->m_spdb, const_cast<RocksDBStorageProvider*>(this)->m_spcolfamily, psnapshot, m_count); return new RocksDBStorageProvider(m_pfactory, const_cast<RocksDBStorageProvider*>(this)->m_spdb, const_cast<RocksDBStorageProvider*>(this)->m_spcolfamily, psnapshot, m_count);
} }