Comparison

util/async.lua @ 8685:2548111e71d6

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
author Kim Alvefur <zash@zash.se>
date Fri, 23 Mar 2018 21:18:15 +0100
parent 8684:801f253ef52d
child 8766:01264bc60c2b
comparison
equal deleted inserted replaced
8684:801f253ef52d 8685:2548111e71d6
1 local log = require "util.logger".init("util.async"); 1 local log = require "util.logger".init("util.async");
2 local new_id = require "util.id".short; 2 local new_id = require "util.id".short;
3 local timer = require "util.timer";
4 3
5 local function checkthread() 4 local function checkthread()
6 local thread, main = coroutine.running(); 5 local thread, main = coroutine.running();
7 if not thread or main then 6 if not thread or main then
8 error("Not running in an async context, see https://prosody.im/doc/developers/util/async"); 7 error("Not running in an async context, see https://prosody.im/doc/developers/util/async");
224 223
225 local function ready() 224 local function ready()
226 return pcall(checkthread); 225 return pcall(checkthread);
227 end 226 end
228 227
229 local function sleep(s)
230 local wait, done = waiter();
231 timer.add_task(s, done);
232 wait();
233 end
234
235 return { 228 return {
236 ready = ready; 229 ready = ready;
237 waiter = waiter; 230 waiter = waiter;
238 guarder = guarder; 231 guarder = guarder;
239 runner = runner; 232 runner = runner;
240 sleep = sleep;
241 }; 233 };