221
222
223
224
225
226
227
228
229
230
231
232
233
234
|
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
|
+
+
|
local errtrace\n\
local function error_handler(err) errtrace = debug.traceback(err, 2) end\n\
-- execute\n\
local ok, data = xpcall(function()\n\
local data = buffer.decode(ljuv_data)\n\
ljuv_data = nil\n\
package.path, package.cpath = data.path, data.cpath\n\
local ljuv = require('ljuv')\n\
for i, arg in ipairs(data.args) do data.args[i] = ljuv.import(arg, true) or arg end\n\
local func, err = load(data.func)\n\
assert(func, err)\n\
local rets = pack(true, func(unpack(data.args, 1, data.args.n)))\n\
return buffer.encode(rets)\n\
end, error_handler)\n\
if ok then ljuv_data = data\n\
else ljuv_data = buffer.encode(pack(false, errtrace)) end\n";
|