]> Cypherpunks repositories - gostls13.git/commitdiff
os: always check for EINTR in calls to open
authorIan Lance Taylor <iant@golang.org>
Mon, 8 Jun 2020 21:35:07 +0000 (14:35 -0700)
committerIan Lance Taylor <iant@golang.org>
Mon, 8 Jun 2020 22:06:39 +0000 (22:06 +0000)
For #11180
For #20400
For #39237

Change-Id: I8de97517c8f92c08f0c8a51f651a17e31617979b
Reviewed-on: https://go-review.googlesource.com/c/go/+/236997
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/os/file_unix.go
src/os/removeall_at.go

index b93e2bd56af0dd98603d93d7778d3bcb0e7057c3..f2c00ae0cb6a0ac63fe3e9baf21fb66ed459df9c 100644 (file)
@@ -202,10 +202,8 @@ func openFileNolog(name string, flag int, perm FileMode) (*File, error) {
                        break
                }
 
-               // On OS X, sigaction(2) doesn't guarantee that SA_RESTART will cause
-               // open(2) to be restarted for regular files. This is easy to reproduce on
-               // fuse file systems (see https://golang.org/issue/11180).
-               if runtime.GOOS == "darwin" && e == syscall.EINTR {
+               // We have to check EINTR here, per issues 11180 and 39237.
+               if e == syscall.EINTR {
                        continue
                }
 
index e619851f9c8276b43614949471e9ec6efbf08557..37bf1b8f2f6f6114507e4d6f74fde0690dd240a8 100644 (file)
@@ -9,7 +9,6 @@ package os
 import (
        "internal/syscall/unix"
        "io"
-       "runtime"
        "syscall"
 )
 
@@ -178,7 +177,7 @@ func openFdAt(dirfd int, name string) (*File, error) {
                }
 
                // See comment in openFileNolog.
-               if runtime.GOOS == "darwin" && e == syscall.EINTR {
+               if e == syscall.EINTR {
                        continue
                }