Software / code / prosody
Comparison
util/timer.lua @ 842:4932f94d35c1
util.timer: More small fixes I forgot to commit
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 26 Feb 2009 22:17:55 +0000 |
| parent | 841:77ff000c2055 |
| child | 896:2c0b9e3c11c3 |
comparison
equal
deleted
inserted
replaced
| 841:77ff000c2055 | 842:4932f94d35c1 |
|---|---|
| 30 add_task = _add_task; | 30 add_task = _add_task; |
| 31 | 31 |
| 32 ns_addtimer(function() | 32 ns_addtimer(function() |
| 33 local current_time = get_time(); | 33 local current_time = get_time(); |
| 34 if #new_data > 0 then | 34 if #new_data > 0 then |
| 35 for _, d in ipairs(new_data) do | 35 for _, d in pairs(new_data) do |
| 36 t_insert(data, d); | 36 t_insert(data, d); |
| 37 end | 37 end |
| 38 new_data = {}; | 38 new_data = {}; |
| 39 elseif #data == 0 then | |
| 40 return; | |
| 41 end | 39 end |
| 42 | 40 |
| 43 for i, d in pairs(data) do | 41 for i, d in pairs(data) do |
| 44 local t, func = d[1], d[2]; | 42 local t, func = d[1], d[2]; |
| 45 if t <= current_time then | 43 if t <= current_time then |
| 46 t_remove(data, i); | 44 data[i] = nil; |
| 47 local r = func(); | 45 local r = func(); |
| 48 if type(r) == "number" then _add_task(r, func); end | 46 if type(r) == "number" then _add_task(r, func); end |
| 49 end | 47 end |
| 50 end | 48 end |
| 51 end); | 49 end); |