mediawiki-extensions-Scribunto/engines/LuaStandalone
Brad Jorsch 84d96e843c LuaStandalone: Release functions when no longer referenced
The LuaStandalone interpreter needs to keep a mapping from integers
returned to PHP to the corresponding function. But if it never releases
these functions when PHP no longer has any reference to them, it can
result in Lua running out of memory if a module with a large number of
functions is invoked many times in one page.

The fix here is to track which function ids are referenced from PHP, and
periodically send the list to Lua so it can remove any that are no
longer used from its cache.

This also takes care of another issue where having multiple interpreter
instances and passing function objects from one into another could call
the wrong function in Lua.

Bug: 51886
Change-Id: I4f15841051f7748d1d6df24080949e5cbd88f217
2014-02-25 22:59:05 +00:00
..
binaries More-compatible Linux standalone binaries 2013-08-13 01:32:50 +00:00
lua_ulimit.sh Added tests and fixed bugs 2012-04-16 14:41:08 +10:00
LuaStandaloneEngine.php LuaStandalone: Release functions when no longer referenced 2014-02-25 22:59:05 +00:00
mw_main.lua LuaStandalone: Release functions when no longer referenced 2014-02-25 22:59:05 +00:00
MWServer.lua LuaStandalone: Release functions when no longer referenced 2014-02-25 22:59:05 +00:00
protocol.txt LuaStandalone: Release functions when no longer referenced 2014-02-25 22:59:05 +00:00