Comparison

core/modulemanager.lua @ 2977:686f9a5a7f5e

modulemanager: Log proper tracebacks on errors during module load/unload.
author Waqas Hussain <waqas20@gmail.com>
date Mon, 19 Apr 2010 18:29:10 +0500
parent 2951:294c359a05f5
child 3165:4ffb5469c1f6
comparison
equal deleted inserted replaced
2976:15c056c1d9eb 2977:686f9a5a7f5e
17 local pluginloader = require "util.pluginloader"; 17 local pluginloader = require "util.pluginloader";
18 18
19 local hosts = hosts; 19 local hosts = hosts;
20 local prosody = prosody; 20 local prosody = prosody;
21 21
22 local loadfile, pcall = loadfile, pcall; 22 local loadfile, pcall, xpcall = loadfile, pcall, xpcall;
23 local setmetatable, setfenv, getfenv = setmetatable, setfenv, getfenv; 23 local setmetatable, setfenv, getfenv = setmetatable, setfenv, getfenv;
24 local pairs, ipairs = pairs, ipairs; 24 local pairs, ipairs = pairs, ipairs;
25 local t_insert, t_concat = table.insert, table.concat; 25 local t_insert, t_concat = table.insert, table.concat;
26 local type = type; 26 local type = type;
27 local next = next; 27 local next = next;
28 local rawget = rawget; 28 local rawget = rawget;
29 local error = error; 29 local error = error;
30 local tostring, tonumber = tostring, tonumber; 30 local tostring, tonumber = tostring, tonumber;
31
32 local debug_traceback = debug.traceback;
33 local unpack, select = unpack, select;
34 pcall = function(f, ...)
35 local n = select("#", ...);
36 local params = {...};
37 return xpcall(function() f(unpack(params, 1, n)) end, function(e) return tostring(e).."\n"..debug_traceback(); end);
38 end
31 39
32 local array, set = require "util.array", require "util.set"; 40 local array, set = require "util.array", require "util.set";
33 41
34 local autoload_modules = {"presence", "message", "iq"}; 42 local autoload_modules = {"presence", "message", "iq"};
35 43