From: Ian Lance Taylor Date: Fri, 9 Aug 2019 20:48:34 +0000 (-0700) Subject: net: document that a keep-alive failure also returns a timeout X-Git-Tag: go1.13rc1~16 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=8b058cfbcec5dc3002ddd6cedc7070ff946b2257;p=gostls13.git net: document that a keep-alive failure also returns a timeout Updates #31449 Change-Id: I76490c5e83eb2f7ba529b387a57ba088428aece5 Reviewed-on: https://go-review.googlesource.com/c/go/+/189757 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Emmanuel Odeke Reviewed-by: Filippo Valsorda --- diff --git a/src/net/net.go b/src/net/net.go index 4ed40237a8..38c6b99637 100644 --- a/src/net/net.go +++ b/src/net/net.go @@ -146,6 +146,13 @@ type Conn interface { // the deadline after successful Read or Write calls. // // A zero value for t means I/O operations will not time out. + // + // Note that if a TCP connection has keep-alive turned on, + // which is the default unless overridden by Dialer.KeepAlive + // or ListenConfig.KeepAlive, then a keep-alive failure may + // also return a timeout error. On Unix systems a keep-alive + // failure on I/O can be detected using + // errors.Is(err, syscall.ETIMEDOUT). SetDeadline(t time.Time) error // SetReadDeadline sets the deadline for future Read calls