Software /
code /
prosody
Comparison
net/server_epoll.lua @ 10984:69ed4764edda
net.server_epoll: Remove unused time field from timer objects
Unused since the move to util.indexedbheap in c8c3f2eba898
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 29 Jun 2020 20:13:12 +0200 |
parent | 10983:0862325842ec |
child | 10985:758ce12586de |
comparison
equal
deleted
inserted
replaced
10983:0862325842ec | 10984:69ed4764edda |
---|---|
85 | 85 |
86 local timers = indexedbheap.create(); | 86 local timers = indexedbheap.create(); |
87 | 87 |
88 local function noop() end | 88 local function noop() end |
89 local function closetimer(t) | 89 local function closetimer(t) |
90 t[1] = 0; | 90 t[1] = noop; |
91 t[2] = noop; | |
92 timers:remove(t.id); | 91 timers:remove(t.id); |
93 end | 92 end |
94 | 93 |
95 local function reschedule(t, time) | 94 local function reschedule(t, time) |
96 time = monotonic() + time; | 95 time = monotonic() + time; |
97 t[1] = time; | |
98 timers:reprioritize(t.id, time); | 96 timers:reprioritize(t.id, time); |
99 end | 97 end |
100 | 98 |
101 -- Add relative timer | 99 -- Add relative timer |
102 local function addtimer(timeout, f, param) | 100 local function addtimer(timeout, f, param) |
103 local time = monotonic() + timeout; | 101 local time = monotonic() + timeout; |
104 local timer = { time, f, param, close = closetimer, reschedule = reschedule, id = nil }; | 102 local timer = { f, param, close = closetimer, reschedule = reschedule, id = nil }; |
105 timer.id = timers:insert(timer, time); | 103 timer.id = timers:insert(timer, time); |
106 return timer; | 104 return timer; |
107 end | 105 end |
108 | 106 |
109 -- Run callbacks of expired timers | 107 -- Run callbacks of expired timers |
119 next_delay = peek - elapsed; | 117 next_delay = peek - elapsed; |
120 break; | 118 break; |
121 end | 119 end |
122 | 120 |
123 local _, timer = timers:pop(); | 121 local _, timer = timers:pop(); |
124 local ok, ret = pcall(timer[2], now, timer, timer[3]); | 122 local ok, ret = pcall(timer[1], now, timer, timer[2]); |
125 if ok and type(ret) == "number" then | 123 if ok and type(ret) == "number" then |
126 local next_time = elapsed+ret; | 124 local next_time = elapsed+ret; |
127 timer[1] = next_time; | |
128 timers:insert(timer, next_time); | 125 timers:insert(timer, next_time); |
129 end | 126 end |
130 | 127 |
131 peek = timers:peek(); | 128 peek = timers:peek(); |
132 end | 129 end |