diff options
author | Matthew Wild <mwild1@gmail.com> | 2012-05-03 16:48:34 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2012-05-03 16:48:34 +0100 |
commit | ffa939698b14e8518c2b15417ae58d1eae26f2ed (patch) | |
tree | 5fa30994b62edf97cf8d73c504e8bd6a74d1d3c4 | |
parent | 3d3ad3119124106c778a86dace652b750997015d (diff) | |
download | prosody-ffa939698b14e8518c2b15417ae58d1eae26f2ed.tar.gz prosody-ffa939698b14e8518c2b15417ae58d1eae26f2ed.zip |
net.server, net.timer, net.server_select: Rearrange dependencies between these three modules. server.addtimer() is no longer a public function (renamed to _addtimer) and is not available at all from server_event (compat code removed to prevent traceback) (thanks Nulani)
-rw-r--r-- | net/server.lua | 16 | ||||
-rw-r--r-- | net/server_select.lua | 3 | ||||
-rw-r--r-- | util/timer.lua | 13 |
3 files changed, 9 insertions, 23 deletions
diff --git a/net/server.lua b/net/server.lua index 1c1a63a4..d644af56 100644 --- a/net/server.lua +++ b/net/server.lua @@ -18,19 +18,8 @@ end local server; if use_luaevent then - server = require "net.server_event"; - -- util.timer requires "net.server", so instead of having - -- Lua look for, and load us again (causing a loop) - set this here - -- (usually it isn't set until we return, look down there...) - package.loaded["net.server"] = server; - - -- Backwards compatibility for timers, addtimer - -- called a function roughly every second - local add_task = require "util.timer".add_task; - function server.addtimer(f) - return add_task(1, function (...) f(...); return 1; end); - end - + server = require "net.server_select"; + -- Overwrite signal.signal() because we need to ask libevent to -- handle them instead local ok, signal = pcall(require, "util.signal"); @@ -48,7 +37,6 @@ if use_luaevent then end else server = require "net.server_select"; - package.loaded["net.server"] = server; end -- require "net.server" shall now forever return this, diff --git a/net/server_select.lua b/net/server_select.lua index d6cfc1f8..70825ada 100644 --- a/net/server_select.lua +++ b/net/server_select.lua @@ -75,7 +75,6 @@ local id local loop local stats local idfalse -local addtimer local closeall local addsocket local addserver @@ -921,6 +920,7 @@ end ----------------------------------// PUBLIC INTERFACE //-- return { + _addtimer = addtimer, addclient = addclient, wrapclient = wrapclient, @@ -930,7 +930,6 @@ return { step = step, stats = stats, closeall = closeall, - addtimer = addtimer, addserver = addserver, getserver = getserver, setlogger = setlogger, diff --git a/util/timer.lua b/util/timer.lua index d36fb8c4..ba7dd429 100644 --- a/util/timer.lua +++ b/util/timer.lua @@ -6,11 +6,7 @@ -- COPYING file in the source package for more information. -- - -local ns_addtimer = require "net.server".addtimer; -local event = require "net.server".event; -local event_base = require "net.server".event_base; - +local server = require "net.server"; local math_min = math.min local math_huge = math.huge local get_time = require "socket".gettime; @@ -24,7 +20,7 @@ local new_data = {}; module "timer" local _add_task; -if not event then +if not server.event then function _add_task(delay, callback) local current_time = get_time(); delay = delay + current_time; @@ -38,7 +34,7 @@ if not event then end end - ns_addtimer(function() + server._addtimer(function() local current_time = get_time(); if #new_data > 0 then for _, d in pairs(new_data) do @@ -64,7 +60,10 @@ if not event then return next_time; end); else + local event = require "net.server".event; + local event_base = require "net.server".event_base; local EVENT_LEAVE = (event.core and event.core.LEAVE) or -1; + function _add_task(delay, callback) local event_handle; event_handle = event_base:addevent(nil, 0, function () |