diff --git a/db/c.cc b/db/c.cc index 73c9db501..6cf194c50 100644 --- a/db/c.cc +++ b/db/c.cc @@ -4112,6 +4112,10 @@ void rocksdb_cache_destroy(rocksdb_cache_t* cache) { delete cache; } +void rocksdb_cache_disown_data(rocksdb_cache_t* cache) { + cache->rep->DisownData(); +} + void rocksdb_cache_set_capacity(rocksdb_cache_t* cache, size_t capacity) { cache->rep->SetCapacity(capacity); } diff --git a/db/c_test.c b/db/c_test.c index 4beedfceb..37a2bc55a 100644 --- a/db/c_test.c +++ b/db/c_test.c @@ -2869,6 +2869,7 @@ int main(int argc, char** argv) { rocksdb_readoptions_destroy(roptions); rocksdb_writeoptions_destroy(woptions); rocksdb_compactoptions_destroy(coptions); + rocksdb_cache_disown_data(cache); rocksdb_cache_destroy(cache); rocksdb_comparator_destroy(cmp); rocksdb_dbpath_destroy(dbpath); diff --git a/include/rocksdb/c.h b/include/rocksdb/c.h index e2ae48a4e..ece2ff443 100644 --- a/include/rocksdb/c.h +++ b/include/rocksdb/c.h @@ -1712,6 +1712,8 @@ extern ROCKSDB_LIBRARY_API unsigned char rocksdb_flushoptions_get_wait( extern ROCKSDB_LIBRARY_API rocksdb_cache_t* rocksdb_cache_create_lru( size_t capacity); extern ROCKSDB_LIBRARY_API void rocksdb_cache_destroy(rocksdb_cache_t* cache); +extern ROCKSDB_LIBRARY_API void rocksdb_cache_disown_data( + rocksdb_cache_t* cache); extern ROCKSDB_LIBRARY_API void rocksdb_cache_set_capacity( rocksdb_cache_t* cache, size_t capacity); extern ROCKSDB_LIBRARY_API size_t