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); |