删除数据库实例后,Rocksdb后台线程正在工作

时间:2016-11-30 10:09:48

标签: c++ c++11 background-thread rocksdb

我的启动方法:

vector<ColumnFamilyDescriptor> columnFamilies = ...
DBOptions dbOptions(options);
std::vector<int32_t> ttls = ...
DBWithTTL* _db;
std::vector<ColumnFamilyHandle*> _handles;
Status status = DBWithTTL::Open(dbOptions, WORKING_DIRECTORY, columnFamilies, &_handles, &_db, ttls, false);

我的关机方法:

for (auto handle : _handles) {
    delete handle;
}
delete _db->GetBaseDB();

但是在关闭完成后,我仍然会在merge下获得带有堆栈的rocksdb::DBImpl::BGWorkCompaction(void * arg)请求,这当然会失败,因为所有列族处理都被处理掉了。

如何标记任何压实或冲洗停止?删除数据库实例似乎还不够。

0 个答案:

没有答案