diff --git a/internal/nbconn/nbconn.go b/internal/nbconn/nbconn.go index 0c03ba7a..534ec605 100644 --- a/internal/nbconn/nbconn.go +++ b/internal/nbconn/nbconn.go @@ -97,7 +97,7 @@ type NetConn struct { writeDeadlineLock sync.Mutex writeDeadline time.Time - // Indicates that underlying socket connection mode set to be non-blocking + // Indicates that underlying socket connection mode explicitly set to be non-blocking isNonBlocking bool } diff --git a/internal/nbconn/nbconn_real_non_block_windows.go b/internal/nbconn/nbconn_real_non_block_windows.go index 39144ea4..8ee2b5ae 100644 --- a/internal/nbconn/nbconn_real_non_block_windows.go +++ b/internal/nbconn/nbconn_real_non_block_windows.go @@ -164,9 +164,11 @@ func (c *NetConn) SetBlockingMode(blocking bool) error { var err error - c.rawConn.Control(func(fd uintptr) { + if ctrlErr := c.rawConn.Control(func(fd uintptr) { err = setSockMode(fd, mode) - }) + }); ctrlErr != nil { + return ctrlErr + } if err == nil { c.isNonBlocking = !blocking