Software /
code /
prosody
Comparison
net/server_epoll.lua @ 9507:33d21f020b66
net.server_epoll: Ignore ENOENT when deregitering socket
It should not really happen
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 12 Oct 2018 03:21:11 +0200 |
parent | 9506:ae6636052be9 |
child | 9508:2055b497b515 |
comparison
equal
deleted
inserted
replaced
9506:ae6636052be9 | 9507:33d21f020b66 |
---|---|
25 local inet_pton = inet.pton; | 25 local inet_pton = inet.pton; |
26 local _SOCKETINVALID = socket._SOCKETINVALID or -1; | 26 local _SOCKETINVALID = socket._SOCKETINVALID or -1; |
27 | 27 |
28 local poller = require "util.poll" | 28 local poller = require "util.poll" |
29 local EEXIST = poller.EEXIST; | 29 local EEXIST = poller.EEXIST; |
30 local ENOENT = poller.ENOENT; | |
30 | 31 |
31 local poll = assert(poller.new()); | 32 local poll = assert(poller.new()); |
32 | 33 |
33 local _ENV = nil; | 34 local _ENV = nil; |
34 -- luacheck: std none | 35 -- luacheck: std none |
308 end | 309 end |
309 if fds[fd] ~= self then | 310 if fds[fd] ~= self then |
310 return nil, "unregistered fd"; | 311 return nil, "unregistered fd"; |
311 end | 312 end |
312 local ok, err, errno = poll:del(fd); | 313 local ok, err, errno = poll:del(fd); |
313 if not ok then | 314 if not ok and errno ~= ENOENT then |
314 log("error", "Could not unregister %s: %s(%d)", self, err, errno); | 315 log("error", "Could not unregister %s: %s(%d)", self, err, errno); |
315 return ok, err; | 316 return ok, err; |
316 end | 317 end |
317 self._wantread, self._wantwrite = nil, nil; | 318 self._wantread, self._wantwrite = nil, nil; |
318 fds[fd] = nil; | 319 fds[fd] = nil; |