Mercurial > prosody-hg
changeset 14136:e27d94d8f505 13.0
net.server_epoll: Clean up timers after disconnection
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Thu, 16 Apr 2026 19:00:22 +0100 |
| parents | 836a70deb3c9 |
| children | 368df9b2d511 |
| files | net/server_epoll.lua |
| diffstat | 1 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/net/server_epoll.lua Thu Apr 16 18:59:56 2026 +0100 +++ b/net/server_epoll.lua Thu Apr 16 19:00:22 2026 +0100 @@ -154,9 +154,8 @@ local closedtimers = {}; local function closetimer(id) - if timers:remove(id) then - closedtimers[id] = true; - end + closedtimers[id] = true; + timers:remove(id); end local function reschedule(id, time) @@ -697,6 +696,10 @@ -- make sure tls sockets aren't put in blocking mode if self.conn.shutdown and self._tls then self.conn:shutdown(); end self:del(); + if self._pausefor then + closetimer(self._pausefor); + self._pausefor = nil; + end self:setwritetimeout(false); self:setreadtimeout(false); self.onreadable = noop; @@ -961,6 +964,9 @@ self:set(false); self._pausefor = addtimer(t, function () self._pausefor = nil; + if not self.conn then + return; + end self:set(true); self:noise("Resuming after pause"); if self.conn and self.conn:dirty() then
