ex data更新可能耗时10秒以上,超过全局垃圾回收时间,导致非法内存访问。因此, 每个表的ex data使用独立的垃圾回收队列,每次更新完毕时强制回收。
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user