ex data更新可能耗时10秒以上,超过全局垃圾回收时间,导致非法内存访问。因此, 每个表的ex data使用独立的垃圾回收队列,每次更新完毕时强制回收。

This commit is contained in:
zhengchao
2022-03-03 15:39:39 +05:00
parent 377d0da92c
commit a184be53de
6 changed files with 26 additions and 19 deletions

View File

@@ -3,7 +3,7 @@
#include "Maat_garbage_collection.h"
struct EX_data_rt;
struct EX_data_rt* EX_data_rt_new(int table_id, Maat_plugin_EX_key2index_func_t * key2index, void (* user_data_free)(void *user_data), struct Maat_garbage_bin* bin);
struct EX_data_rt* EX_data_rt_new(int table_id, Maat_plugin_EX_key2index_func_t * key2index, void (* user_data_free)(void *user_data));
void EX_data_rt_free(struct EX_data_rt* p);
void EX_data_rt_update_commit(struct EX_data_rt* ex_rt);

View File

@@ -6,4 +6,5 @@ void Maat_garbage_bin_free(struct Maat_garbage_bin* bin);
void Maat_garbage_bagging(struct Maat_garbage_bin* bin, void* garbage, void (* func)(void *));
void Maat_garbage_collect_routine(struct Maat_garbage_bin* bin);
size_t Maat_garbage_bin_get_size(struct Maat_garbage_bin* bin);
void Maat_garbage_collect_by_force(struct Maat_garbage_bin* bin);