Comparison

net/server_epoll.lua @ 10982:276f16101d59

net.server_epoll: Make API-compatible with util.timer
author Kim Alvefur <zash@zash.se>
date Mon, 29 Jun 2020 16:42:16 +0200
parent 10861:e12690a37795
child 10983:0862325842ec
comparison
equal deleted inserted replaced
10981:e6c1e92cc7a7 10982:276f16101d59
97 t[1] = time; 97 t[1] = time;
98 timers:reprioritize(t.id, time); 98 timers:reprioritize(t.id, time);
99 end 99 end
100 100
101 -- Add relative timer 101 -- Add relative timer
102 local function addtimer(timeout, f) 102 local function addtimer(timeout, f, param)
103 local time = monotonic() + timeout; 103 local time = monotonic() + timeout;
104 local timer = { time, f, close = closetimer, reschedule = reschedule, id = nil }; 104 local timer = { time, f, param, close = closetimer, reschedule = reschedule, id = nil };
105 timer.id = timers:insert(timer, time); 105 timer.id = timers:insert(timer, time);
106 return timer; 106 return timer;
107 end 107 end
108 108
109 -- Run callbacks of expired timers 109 -- Run callbacks of expired timers
119 next_delay = peek - elapsed; 119 next_delay = peek - elapsed;
120 break; 120 break;
121 end 121 end
122 122
123 local _, timer = timers:pop(); 123 local _, timer = timers:pop();
124 local ok, ret = pcall(timer[2], now); 124 local ok, ret = pcall(timer[2], now, timer, timer[3]);
125 if ok and type(ret) == "number" then 125 if ok and type(ret) == "number" then
126 local next_time = elapsed+ret; 126 local next_time = elapsed+ret;
127 timer[1] = next_time; 127 timer[1] = next_time;
128 timers:insert(timer, next_time); 128 timers:insert(timer, next_time);
129 end 129 end