From eaf593869ac42d0200146d1e666070cf97cf1dd6 Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Tue, 7 Mar 2023 19:34:17 +0800 Subject: [PATCH] net: document the Close blocking with SO_LINGER on some OS's Fixes #58882 Change-Id: I65842a4aa3f808533e28128078e7e94a9b121404 Reviewed-on: https://go-review.googlesource.com/c/go/+/473915 Reviewed-by: Carlos Amedee TryBot-Result: Gopher Robot Auto-Submit: Ian Lance Taylor Reviewed-by: Ian Lance Taylor Run-TryBot: Andy Pan Run-TryBot: Ian Lance Taylor --- src/net/tcpsock.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/net/tcpsock.go b/src/net/tcpsock.go index 672170e681..f736f5a878 100644 --- a/src/net/tcpsock.go +++ b/src/net/tcpsock.go @@ -167,8 +167,10 @@ func (c *TCPConn) CloseWrite() error { // If sec == 0, the operating system discards any unsent or // unacknowledged data. // -// If sec > 0, the data is sent in the background as with sec < 0. On -// some operating systems after sec seconds have elapsed any remaining +// If sec > 0, the data is sent in the background as with sec < 0. +// On some operating systems including Linux, this may cause Close to block +// until all data has been sent or discarded. +// On some operating systems after sec seconds have elapsed any remaining // unsent data may be discarded. func (c *TCPConn) SetLinger(sec int) error { if !c.ok() { -- 2.50.0