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

libgo: Remove unnecessary EINTR checks.

We always use SA_RESTART with signals, so
read/write/etc. should never return EINTR.

From-SVN: r171802
parent c689d49e
No related branches found
No related tags found
No related merge requests found
...@@ -376,7 +376,7 @@ func (fd *netFD) Read(p []byte) (n int, err os.Error) { ...@@ -376,7 +376,7 @@ func (fd *netFD) Read(p []byte) (n int, err os.Error) {
for { for {
var errno int var errno int
n, errno = syscall.Read(fd.sysfile.Fd(), p) n, errno = syscall.Read(fd.sysfile.Fd(), p)
if (errno == syscall.EAGAIN || errno == syscall.EINTR) && fd.rdeadline >= 0 { if errno == syscall.EAGAIN && fd.rdeadline >= 0 {
pollserver.WaitRead(fd) pollserver.WaitRead(fd)
continue continue
} }
...@@ -411,7 +411,7 @@ func (fd *netFD) ReadFrom(p []byte) (n int, sa syscall.Sockaddr, err os.Error) { ...@@ -411,7 +411,7 @@ func (fd *netFD) ReadFrom(p []byte) (n int, sa syscall.Sockaddr, err os.Error) {
for { for {
var errno int var errno int
n, sa, errno = syscall.Recvfrom(fd.sysfd, p, 0) n, sa, errno = syscall.Recvfrom(fd.sysfd, p, 0)
if (errno == syscall.EAGAIN || errno == syscall.EINTR) && fd.rdeadline >= 0 { if errno == syscall.EAGAIN && fd.rdeadline >= 0 {
pollserver.WaitRead(fd) pollserver.WaitRead(fd)
continue continue
} }
...@@ -444,7 +444,7 @@ func (fd *netFD) ReadMsg(p []byte, oob []byte) (n, oobn, flags int, sa syscall.S ...@@ -444,7 +444,7 @@ func (fd *netFD) ReadMsg(p []byte, oob []byte) (n, oobn, flags int, sa syscall.S
for { for {
var errno int var errno int
n, oobn, flags, sa, errno = syscall.Recvmsg(fd.sysfd, p, oob, 0) n, oobn, flags, sa, errno = syscall.Recvmsg(fd.sysfd, p, oob, 0)
if (errno == syscall.EAGAIN || errno == syscall.EINTR) && fd.rdeadline >= 0 { if errno == syscall.EAGAIN && fd.rdeadline >= 0 {
pollserver.WaitRead(fd) pollserver.WaitRead(fd)
continue continue
} }
...@@ -490,7 +490,7 @@ func (fd *netFD) Write(p []byte) (n int, err os.Error) { ...@@ -490,7 +490,7 @@ func (fd *netFD) Write(p []byte) (n int, err os.Error) {
if nn == len(p) { if nn == len(p) {
break break
} }
if (errno == syscall.EAGAIN || errno == syscall.EINTR) && fd.wdeadline >= 0 { if errno == syscall.EAGAIN && fd.wdeadline >= 0 {
pollserver.WaitWrite(fd) pollserver.WaitWrite(fd)
continue continue
} }
...@@ -526,7 +526,7 @@ func (fd *netFD) WriteTo(p []byte, sa syscall.Sockaddr) (n int, err os.Error) { ...@@ -526,7 +526,7 @@ func (fd *netFD) WriteTo(p []byte, sa syscall.Sockaddr) (n int, err os.Error) {
var oserr os.Error var oserr os.Error
for { for {
errno := syscall.Sendto(fd.sysfd, p, 0, sa) errno := syscall.Sendto(fd.sysfd, p, 0, sa)
if (errno == syscall.EAGAIN || errno == syscall.EINTR) && fd.wdeadline >= 0 { if errno == syscall.EAGAIN && fd.wdeadline >= 0 {
pollserver.WaitWrite(fd) pollserver.WaitWrite(fd)
continue continue
} }
...@@ -560,7 +560,7 @@ func (fd *netFD) WriteMsg(p []byte, oob []byte, sa syscall.Sockaddr) (n int, oob ...@@ -560,7 +560,7 @@ func (fd *netFD) WriteMsg(p []byte, oob []byte, sa syscall.Sockaddr) (n int, oob
for { for {
var errno int var errno int
errno = syscall.Sendmsg(fd.sysfd, p, oob, sa, 0) errno = syscall.Sendmsg(fd.sysfd, p, oob, sa, 0)
if (errno == syscall.EAGAIN || errno == syscall.EINTR) && fd.wdeadline >= 0 { if errno == syscall.EAGAIN && fd.wdeadline >= 0 {
pollserver.WaitWrite(fd) pollserver.WaitWrite(fd)
continue continue
} }
...@@ -598,7 +598,7 @@ func (fd *netFD) accept(toAddr func(syscall.Sockaddr) Addr) (nfd *netFD, err os. ...@@ -598,7 +598,7 @@ func (fd *netFD) accept(toAddr func(syscall.Sockaddr) Addr) (nfd *netFD, err os.
return nil, os.EINVAL return nil, os.EINVAL
} }
s, sa, e = syscall.Accept(fd.sysfd) s, sa, e = syscall.Accept(fd.sysfd)
if e != syscall.EAGAIN && e != syscall.EINTR { if e != syscall.EAGAIN {
break break
} }
syscall.ForkLock.RUnlock() syscall.ForkLock.RUnlock()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment