diff --git a/eventloop_unix.go b/eventloop_unix.go index e7d2f4a68..dcf9e7235 100644 --- a/eventloop_unix.go +++ b/eventloop_unix.go @@ -190,15 +190,15 @@ func (el *eventloop) loopWrite(c *conn) error { } func (el *eventloop) loopCloseConn(c *conn, err error) error { - if !c.outboundBuffer.IsEmpty() && err == nil { - _ = el.loopWrite(c) - } - if !c.opened { el.svr.logger.Debugf("The fd=%d in event-loop(%d) is already closed, skipping it", c.fd, el.idx) return nil } + if !c.outboundBuffer.IsEmpty() && err == nil { + _ = el.loopWrite(c) + } + err0, err1 := el.poller.Delete(c.fd), unix.Close(c.fd) if err0 == nil && err1 == nil { delete(el.connections, c.fd)