From bea26198e748aeead5cb1d93fc80511a907afa3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sun, 15 Jun 2025 17:30:35 +0800 Subject: [PATCH] Fix "Fix gLazyConn race" --- stack_gvisor_lazy.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/stack_gvisor_lazy.go b/stack_gvisor_lazy.go index 387b953..59fcb35 100644 --- a/stack_gvisor_lazy.go +++ b/stack_gvisor_lazy.go @@ -145,8 +145,12 @@ func (c *gLazyConn) Close() error { c.handshakeErr = net.ErrClosed c.handshakeDone = true return nil + } else if c.handshakeErr != nil { + return nil } c.handshakeAccess.Unlock() + } else if c.handshakeErr != nil { + return nil } return c.tcpConn.Close() } @@ -159,8 +163,12 @@ func (c *gLazyConn) CloseRead() error { c.handshakeErr = net.ErrClosed c.handshakeDone = true return nil + } else if c.handshakeErr != nil { + return nil } c.handshakeAccess.Unlock() + } else if c.handshakeErr != nil { + return nil } return c.tcpConn.CloseRead() } @@ -173,8 +181,12 @@ func (c *gLazyConn) CloseWrite() error { c.handshakeErr = net.ErrClosed c.handshakeDone = true return nil + } else if c.handshakeErr != nil { + return nil } c.handshakeAccess.Unlock() + } else if c.handshakeErr != nil { + return nil } return c.tcpConn.CloseRead() }