Skip to content
Snippets Groups Projects
Commit e64675a7 authored by Ian Lance Taylor's avatar Ian Lance Taylor
Browse files

os: always check for EINTR in calls to open

For #11180
For #20400
For #39237

Change-Id: I8de97517c8f92c08f0c8a51f651a17e31617979b
Reviewed-on: https://go-review.googlesource.com/c/go/+/236997


Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
parent 2cd2ff6f
Branches
Tags
No related merge requests found
......@@ -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
}
......
......@@ -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
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment