From e98fe5eb0441326e5cb2854b26e8c5cfe33d21f0 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Mon, 22 Aug 2016 17:19:49 +0200 Subject: net.server_epoll: Move management of fd registry to :setflags --- net/server_epoll.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/net/server_epoll.lua b/net/server_epoll.lua index c3b9974c..21a6f785 100644 --- a/net/server_epoll.lua +++ b/net/server_epoll.lua @@ -263,6 +263,11 @@ function interface:setflags(r, w) -- log("debug", "epoll_ctl(%q, %d, %q) -> %s" .. (err and ", %q" or ""), -- op, fd, flags or "", tostring(ok), err); if not ok then return ok, err end + if op == "add" then + fds[fd] = self; + elseif op == "del" then + fds[fd] = nil; + end self._flags = flags; return true; end @@ -367,7 +372,6 @@ function interface:destroy() self.destroy = noop; self.close = noop; self.on = noop; - fds[self:getfd()] = nil; self.conn:close(); self.conn = nil; end @@ -455,8 +459,6 @@ local function wrapsocket(client, server, pattern, listeners, tls) -- luasocket if client.getsockname then conn.sockname, conn.sockport = client:getsockname(); end - - fds[conn:getfd()] = conn; return conn; end @@ -528,7 +530,6 @@ local function addserver(addr, port, listeners, pattern, tls) sockport = port; }, interface_mt); server:setflags(true, false); - fds[server:getfd()] = server; return server; end -- cgit v1.2.3