aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2019-05-10 17:40:39 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2019-05-10 17:40:39 +0100
commitb218ec15bdae237f5ec9f23821239c29e2d3757d (patch)
tree8c4ccd4c745c7590497e44cc3b16832b2a4657cb /src/lua
parentbc8a0fe1d5f55e6ec47200028a027d1843d6306d (diff)
downloadrspamd-b218ec15bdae237f5ec9f23821239c29e2d3757d.tar.gz
rspamd-b218ec15bdae237f5ec9f23821239c29e2d3757d.zip
[Minor] Allow to tune GC related options
Diffstat (limited to 'src/lua')
-rw-r--r--src/lua/lua_cfg_file.c2
-rw-r--r--src/lua/lua_common.c15
-rw-r--r--src/lua/lua_common.h2
3 files changed, 14 insertions, 5 deletions
diff --git a/src/lua/lua_cfg_file.c b/src/lua/lua_cfg_file.c
index efd8c8820..26e9811bd 100644
--- a/src/lua/lua_cfg_file.c
+++ b/src/lua/lua_cfg_file.c
@@ -137,4 +137,6 @@ rspamd_lua_post_load_config (struct rspamd_config *cfg)
}
lua_settop (L, 0);
+
+ rspamd_lua_start_gc (cfg);
}
diff --git a/src/lua/lua_common.c b/src/lua/lua_common.c
index 1a5cf117f..6502acd68 100644
--- a/src/lua/lua_common.c
+++ b/src/lua/lua_common.c
@@ -995,13 +995,20 @@ rspamd_lua_init (bool wipe_mem)
lua_setglobal (L, "get_traces");
#endif
+ return L;
+}
+
+void
+rspamd_lua_start_gc (struct rspamd_config *cfg)
+{
+ lua_State *L = (lua_State *)cfg->lua_state;
+
+ lua_settop (L, 0);
/* Set up GC */
lua_gc (L, LUA_GCCOLLECT, 0);
- lua_gc (L, LUA_GCSETSTEPMUL, 50);
- lua_gc (L, LUA_GCSETPAUSE, 400);
+ lua_gc (L, LUA_GCSETSTEPMUL, cfg->lua_gc_step);
+ lua_gc (L, LUA_GCSETPAUSE, cfg->lua_gc_pause);
lua_gc (L, LUA_GCRESTART, 0);
-
- return L;
}
/**
diff --git a/src/lua/lua_common.h b/src/lua/lua_common.h
index 0745d2ac3..214fffca6 100644
--- a/src/lua/lua_common.h
+++ b/src/lua/lua_common.h
@@ -167,7 +167,7 @@ gpointer rspamd_lua_check_class (lua_State *L, gint index, const gchar *name);
*/
lua_State *rspamd_lua_init (bool wipe_mem);
-
+void rspamd_lua_start_gc (struct rspamd_config *cfg);
/**
* Sets field in a global variable
* @param L