我在应用程序中使用 Rocksdb,在关闭所有 db 实例后,我仍然看到运行着 Rocksdb::ThreadPoolImpl::Impl::BGThread(unsigned long) () 的线程
因此,当我关闭应用程序时,我收到一个 libc++abi.dylib: terifying 错误,我认为这是由于上述原因造成的。如何避免这种情况并确保这些线程已关闭?谢谢
在rocksdb中运行着一堆后台进程,例如Compaction、memtable flush,它们由单独的线程处理。要安全地关闭 ROCKSDB,您必须取消所有正在运行的后台作业。
CancelAllBackgroundWork(bool);
Run Code Online (Sandbox Code Playgroud)
在关闭数据库之前调用此函数。传递一个 bool 作为参数,无论您是想立即终止还是等待后台作业完成然后终止。
rocksdb_close()现在调用将完全关闭数据库
| 归档时间: |
|
| 查看次数: |
891 次 |
| 最近记录: |