summaryrefslogtreecommitdiff
path: root/libs/lua
diff options
context:
space:
mode:
Diffstat (limited to 'libs/lua')
-rw-r--r--libs/lua/lua/luastate.h2
-rw-r--r--libs/lua/luastate.cc11
2 files changed, 13 insertions, 0 deletions
diff --git a/libs/lua/lua/luastate.h b/libs/lua/lua/luastate.h
index 88ffc93486..5a5c939c2a 100644
--- a/libs/lua/lua/luastate.h
+++ b/libs/lua/lua/luastate.h
@@ -34,6 +34,8 @@ public:
int do_command (std::string);
int do_file (std::string);
void collect_garbage ();
+ void collect_garbage_step ();
+ void tweak_rt_gc ();
sigc::signal<void,std::string> Print;
diff --git a/libs/lua/luastate.cc b/libs/lua/luastate.cc
index 546b02a006..3b8a7ae25a 100644
--- a/libs/lua/luastate.cc
+++ b/libs/lua/luastate.cc
@@ -77,6 +77,17 @@ LuaState::collect_garbage () {
}
void
+LuaState::collect_garbage_step () {
+ lua_gc (L, LUA_GCSTEP, 0);
+}
+
+void
+LuaState::tweak_rt_gc () {
+ //lua_gc (L, LUA_GCSETPAUSE, 20);
+ lua_gc (L, LUA_GCSETSTEPMUL, 100);
+}
+
+void
LuaState::print (std::string text) {
Print (text); /* EMIT SIGNAL */
}