aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2018-03-23 21:18:15 +0100
committerKim Alvefur <zash@zash.se>2018-03-23 21:18:15 +0100
commit2fa049d2e15dba4aedba3e7009af45668c617823 (patch)
tree44ff62ca6b47b65e3399564c5c4f4fe5cecfe5ea /util
parent57f5ea520fdf4e908507f84e26165ebd0b6fdf7f (diff)
downloadprosody-2fa049d2e15dba4aedba3e7009af45668c617823.tar.gz
prosody-2fa049d2e15dba4aedba3e7009af45668c617823.zip
util.timer: Move sleep() here from util.async
This is to solve a indirect dependency issue where net.server was initialized before the config was read
Diffstat (limited to 'util')
-rw-r--r--util/async.lua8
-rw-r--r--util/timer.lua8
2 files changed, 8 insertions, 8 deletions
diff --git a/util/async.lua b/util/async.lua
index 8b92c878..012cfd87 100644
--- a/util/async.lua
+++ b/util/async.lua
@@ -1,6 +1,5 @@
local log = require "util.logger".init("util.async");
local new_id = require "util.id".short;
-local timer = require "util.timer";
local function checkthread()
local thread, main = coroutine.running();
@@ -226,16 +225,9 @@ local function ready()
return pcall(checkthread);
end
-local function sleep(s)
- local wait, done = waiter();
- timer.add_task(s, done);
- wait();
-end
-
return {
ready = ready;
waiter = waiter;
guarder = guarder;
runner = runner;
- sleep = sleep;
};
diff --git a/util/timer.lua b/util/timer.lua
index ff834068..70678ab2 100644
--- a/util/timer.lua
+++ b/util/timer.lua
@@ -10,6 +10,7 @@ local indexedbheap = require "util.indexedbheap";
local log = require "util.logger".init("timer");
local server = require "net.server";
local get_time = require "util.time".now
+local async = require "util.async";
local type = type;
local debug_traceback = debug.traceback;
local tostring = tostring;
@@ -102,9 +103,16 @@ local function reschedule(id, delay)
return id;
end
+local function sleep(s)
+ local wait, done = async.waiter();
+ add_task(s, done);
+ wait();
+end
+
return {
add_task = add_task;
stop = stop;
reschedule = reschedule;
+ sleep = sleep;
};