]> Cypherpunks repositories - gostls13.git/commit
os: handle EINTR from open(2).
authorAaron Jacobs <jacobsa@google.com>
Wed, 16 Sep 2015 22:32:09 +0000 (08:32 +1000)
committerIan Lance Taylor <iant@golang.org>
Thu, 17 Sep 2015 01:20:45 +0000 (01:20 +0000)
commit50d0ee0c98ea21f818d2daa9bc21ef51861a2ef9
tree8137c99a751c4a60a25c88883198dab4b4042ab9
parent9337dc9b5e4a79a071c8eb4879974955b19e3862
os: handle EINTR from open(2).

The man page for sigaction(2) on OS X doesn't guarantee that SA_RESTART
will work for open(2) on regular files:

    The affected system calls include open(2), read(2), write(2),
    sendto(2), recvfrom(2), sendmsg(2) and recvmsg(2) on a
    communications channel or a slow device (such as a terminal, but not
    a regular file) and during a wait(2) or ioctl(2).

I've never observed EINTR from open(2) for a traditional file system
such as HFS+, but it's easy to observe with a fuse file system that is
slightly slow (cf. https://goo.gl/UxsVgB). After this change, the
problem can no longer be reproduced when calling os.OpenFile.

Fixes #11180.

Change-Id: I967247430e20a7d29a285b3d76bf3498dc4773db
Reviewed-on: https://go-review.googlesource.com/14484
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/os/file_unix.go