From: Tobias Klauser Date: Tue, 14 Jan 2025 10:26:06 +0000 (+0100) Subject: internal/poll: use ignoringEINTR2 in (*FD).Pread X-Git-Tag: go1.25rc1~1203 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=9896da303a74c7af02f711fbb49ac08e4ef3590b;p=gostls13.git internal/poll: use ignoringEINTR2 in (*FD).Pread Change-Id: I2af5f3f039b6c0e8e77484bd6b2cdb88e919a85d Reviewed-on: https://go-review.googlesource.com/c/go/+/641759 Auto-Submit: Ian Lance Taylor Reviewed-by: Cherry Mui LUCI-TryBot-Result: Go LUCI Auto-Submit: Tobias Klauser Reviewed-by: Ian Lance Taylor --- diff --git a/src/internal/poll/fd_unix.go b/src/internal/poll/fd_unix.go index 2535a3ae4d..31e6e21120 100644 --- a/src/internal/poll/fd_unix.go +++ b/src/internal/poll/fd_unix.go @@ -183,16 +183,9 @@ func (fd *FD) Pread(p []byte, off int64) (int, error) { if fd.IsStream && len(p) > maxRW { p = p[:maxRW] } - var ( - n int - err error - ) - for { - n, err = syscall.Pread(fd.Sysfd, p, off) - if err != syscall.EINTR { - break - } - } + n, err := ignoringEINTR2(func() (int, error) { + return syscall.Pread(fd.Sysfd, p, off) + }) if err != nil { n = 0 }