Software /
code /
prosody
Comparison
util/timer.lua @ 5880:11f14d44438e
util.timer: Import all require upvalues.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Wed, 30 Oct 2013 17:58:17 -0400 |
parent | 5879:95f1d5421fbc |
child | 5898:bf9aba718c01 |
comparison
equal
deleted
inserted
replaced
5879:95f1d5421fbc | 5880:11f14d44438e |
---|---|
13 local math_huge = math.huge | 13 local math_huge = math.huge |
14 local get_time = require "socket".gettime; | 14 local get_time = require "socket".gettime; |
15 local t_insert = table.insert; | 15 local t_insert = table.insert; |
16 local pairs = pairs; | 16 local pairs = pairs; |
17 local type = type; | 17 local type = type; |
18 local debug_traceback = debug.traceback; | |
19 local tostring = tostring; | |
20 local xpcall = xpcall; | |
18 | 21 |
19 local data = {}; | 22 local data = {}; |
20 local new_data = {}; | 23 local new_data = {}; |
21 | 24 |
22 module "timer" | 25 module "timer" |
85 local h = indexedbheap.create(); | 88 local h = indexedbheap.create(); |
86 local params = {}; | 89 local params = {}; |
87 local next_time = nil; | 90 local next_time = nil; |
88 local _id, _callback, _now, _param; | 91 local _id, _callback, _now, _param; |
89 local function _call() return _callback(_now, _id, _param); end | 92 local function _call() return _callback(_now, _id, _param); end |
90 local function _traceback_handler(err) log("error", "Traceback[timer]: %s", traceback(tostring(err), 2)); end | 93 local function _traceback_handler(err) log("error", "Traceback[timer]: %s", debug_traceback(tostring(err), 2)); end |
91 local function _on_timer(now) | 94 local function _on_timer(now) |
92 local peek; | 95 local peek; |
93 while true do | 96 while true do |
94 peek = h:peek(); | 97 peek = h:peek(); |
95 if peek == nil or peek > now then break; end | 98 if peek == nil or peek > now then break; end |