libs/core: trigger garbage collection in coxpcall() if 80% of the allocated memory pool are filled
This commit is contained in:
parent
7dcb05fd1c
commit
60613ef05c
1 changed files with 7 additions and 0 deletions
|
@ -37,6 +37,7 @@ local rawget, rawset, unpack = rawget, rawset, unpack
|
|||
local tostring, type, assert = tostring, type, assert
|
||||
local ipairs, pairs, loadstring = ipairs, pairs, loadstring
|
||||
local require, pcall, xpcall = require, pcall, xpcall
|
||||
local collectgarbage, get_memory_limit = collectgarbage, get_memory_limit
|
||||
|
||||
--- LuCI utility functions.
|
||||
module "luci.util"
|
||||
|
@ -784,5 +785,11 @@ end
|
|||
|
||||
-- Resume execution of protected function call
|
||||
function performResume(err, co, ...)
|
||||
if get_memory_limit and get_memory_limit() > 0 and
|
||||
collectgarbage("count") > (get_memory_limit() * 0.8)
|
||||
then
|
||||
collectgarbage("collect")
|
||||
end
|
||||
|
||||
return handleReturnValue(err, co, coroutine.resume(co, ...))
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue