util/timer.lua

changeset 842
4932f94d35c1
parent 841
77ff000c2055
child 894
2c0b9e3c11c3
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);

mercurial