From d4d83ebea89adc98472c6a6e31a01379e3506ac5 Mon Sep 17 00:00:00 2001 From: lesismal Date: Thu, 18 Jan 2024 16:51:50 +0800 Subject: [PATCH] lint --- conn_unix.go | 4 +++- lmux/lmux.go | 4 ++-- nbhttp/engine.go | 4 ++-- poller_epoll.go | 4 ++-- poller_kqueue.go | 16 +++++++++------- poller_std.go | 6 ++++-- sendfile_unix.go | 4 ++-- 7 files changed, 24 insertions(+), 18 deletions(-) diff --git a/conn_unix.go b/conn_unix.go index dc2dd815..2ad7e012 100644 --- a/conn_unix.go +++ b/conn_unix.go @@ -606,7 +606,7 @@ func (c *Conn) flush() error { continue } if errors.Is(err, syscall.EAGAIN) { - c.modWrite() + // c.modWrite() return nil } if err != nil { @@ -616,6 +616,8 @@ func (c *Conn) flush() error { } } + c.resetRead() + return nil } diff --git a/lmux/lmux.go b/lmux/lmux.go index 58791dd7..c9c6091c 100644 --- a/lmux/lmux.go +++ b/lmux/lmux.go @@ -75,8 +75,8 @@ func (lm *ListenerMux) Start() { c, err := l.Accept() if err != nil { var ne net.Error - if ok := errors.As(err, &ne); ok && ne.Temporary() { - logging.Error("Accept failed: temporary error, retrying...") + if ok := errors.As(err, &ne); ok && ne.Timeout() { + logging.Error("Accept failed: timeout error, retrying...") time.Sleep(time.Second / 20) continue } else { diff --git a/nbhttp/engine.go b/nbhttp/engine.go index c0a2fb76..b275313d 100644 --- a/nbhttp/engine.go +++ b/nbhttp/engine.go @@ -298,8 +298,8 @@ func (e *Engine) listen(ln net.Listener, tlsConfig *tls.Config, addConn func(*Co addConn(&Conn{Conn: conn}, tlsConfig, decrease) } else { var ne net.Error - if ok := errors.As(err, &ne); ok && ne.Temporary() { - logging.Error("Accept failed: temporary error, retrying...") + if ok := errors.As(err, &ne); ok && ne.Timeout() { + logging.Error("Accept failed: timeout error, retrying...") time.Sleep(time.Second / 20) } else { if !e.shutdown { diff --git a/poller_epoll.go b/poller_epoll.go index a42e5e0e..ac606c6a 100644 --- a/poller_epoll.go +++ b/poller_epoll.go @@ -140,8 +140,8 @@ func (p *poller) acceptorLoop() { p.g.pollers[c.Hash()%len(p.g.pollers)].addConn(c) } else { var ne net.Error - if ok := errors.As(err, &ne); ok && ne.Temporary() { - logging.Error("NBIO[%v][%v_%v] Accept failed: temporary error, retrying...", p.g.Name, p.pollType, p.index) + if ok := errors.As(err, &ne); ok && ne.Timeout() { + logging.Error("NBIO[%v][%v_%v] Accept failed: timeout error, retrying...", p.g.Name, p.pollType, p.index) time.Sleep(time.Second / 20) } else { if !p.shutdown { diff --git a/poller_kqueue.go b/poller_kqueue.go index 22a6c1b6..d65cfb7a 100644 --- a/poller_kqueue.go +++ b/poller_kqueue.go @@ -8,6 +8,7 @@ package nbio import ( + "errors" "fmt" "io" "net" @@ -32,7 +33,6 @@ const ( ) const ( - // for build IPPROTO_TCP = 0 TCP_KEEPINTVL = 0 TCP_KEEPIDLE = 0 @@ -147,10 +147,10 @@ func (p *poller) readWrite(ev *syscall.Kevent_t) { p.g.onData(rc, buffer[:n]) } p.g.payback(c, buffer) - if err == syscall.EINTR { + if errors.Is(err, syscall.EINTR) { continue } - if err == syscall.EAGAIN { + if errors.Is(err, syscall.EAGAIN) { return } if (err != nil || n == 0) && ev.Flags&syscall.EV_DELETE == 0 { @@ -205,15 +205,17 @@ func (p *poller) acceptorLoop() { for !p.shutdown { conn, err := p.listener.Accept() if err == nil { - c, err := NBConn(conn) + var c *Conn + c, err = NBConn(conn) if err != nil { conn.Close() continue } p.g.pollers[c.Hash()%len(p.g.pollers)].addConn(c) } else { - if ne, ok := err.(net.Error); ok && ne.Temporary() { - logging.Error("NBIO[%v][%v_%v] Accept failed: temporary error, retrying...", p.g.Name, p.pollType, p.index) + var ne net.Error + if ok := errors.As(err, &ne); ok && ne.Timeout() { + logging.Error("NBIO[%v][%v_%v] Accept failed: timeout error, retrying...", p.g.Name, p.pollType, p.index) time.Sleep(time.Second / 20) } else { if !p.shutdown { @@ -241,7 +243,7 @@ func (p *poller) readWriteLoop() { p.eventList = nil p.mux.Unlock() n, err := syscall.Kevent(p.kfd, changes, events, nil) - if err != nil && err != syscall.EINTR { + if err != nil && errors.Is(err, syscall.EINTR) { return } diff --git a/poller_std.go b/poller_std.go index 8b8b8f04..01b8a934 100644 --- a/poller_std.go +++ b/poller_std.go @@ -8,6 +8,7 @@ package nbio import ( + "errors" "net" "runtime" "time" @@ -109,8 +110,9 @@ func (p *poller) start() { for !p.shutdown { err = p.accept() if err != nil { - if ne, ok := err.(net.Error); ok && ne.Temporary() { - logging.Error("NBIO[%v][%v_%v] Accept failed: temporary error, retrying...", p.g.Name, p.pollType, p.index) + var ne net.Error + if ok := errors.As(err, &ne); ok && ne.Timeout() { + logging.Error("NBIO[%v][%v_%v] Accept failed: timeout error, retrying...", p.g.Name, p.pollType, p.index) time.Sleep(time.Second / 20) } else { if !p.shutdown { diff --git a/sendfile_unix.go b/sendfile_unix.go index 77863ff1..d32c43b5 100644 --- a/sendfile_unix.go +++ b/sendfile_unix.go @@ -43,8 +43,9 @@ func (c *Conn) Sendfile(f *os.File, remain int64) (int64, error) { remain = size - offset } + var src int if len(c.writeList) > 0 { - src, err := syscall.Dup(int(f.Fd())) + src, err = syscall.Dup(int(f.Fd())) if err != nil { c.closeWithErrorWithoutLock(err) return 0, err @@ -58,7 +59,6 @@ func (c *Conn) Sendfile(f *os.File, remain int64) (int64, error) { var ( n int - src = int(f.Fd()) dst = c.fd total = remain )