From patchwork Thu Mar 31 22:19:58 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Lance Taylor X-Patchwork-Id: 89143 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 2E13FB6F7D for ; Fri, 1 Apr 2011 09:20:16 +1100 (EST) Received: (qmail 9042 invoked by alias); 31 Mar 2011 22:20:10 -0000 Received: (qmail 8929 invoked by uid 22791); 31 Mar 2011 22:20:08 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, SPF_HELO_PASS, T_RP_MATCHES_RCVD, T_TVD_MIME_NO_HEADERS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 31 Mar 2011 22:20:03 +0000 Received: from wpaz5.hot.corp.google.com (wpaz5.hot.corp.google.com [172.24.198.69]) by smtp-out.google.com with ESMTP id p2VMK240004300 for ; Thu, 31 Mar 2011 15:20:02 -0700 Received: from iyi20 (iyi20.prod.google.com [10.241.51.20]) by wpaz5.hot.corp.google.com with ESMTP id p2VMK12S016952 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Thu, 31 Mar 2011 15:20:01 -0700 Received: by iyi20 with SMTP id 20so4214246iyi.16 for ; Thu, 31 Mar 2011 15:20:01 -0700 (PDT) Received: by 10.42.229.195 with SMTP id jj3mr920961icb.231.1301610000952; Thu, 31 Mar 2011 15:20:00 -0700 (PDT) Received: from coign.google.com (dhcp-172-22-127-165.mtv.corp.google.com [172.22.127.165]) by mx.google.com with ESMTPS id o3sm1000675ibd.27.2011.03.31.15.19.59 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 31 Mar 2011 15:19:59 -0700 (PDT) From: Ian Lance Taylor To: gcc-patches@gcc.gnu.org, gofrontend-dev@googlegroups.com Subject: libgo patch committed: Remove unnecessary EINTR tests Date: Thu, 31 Mar 2011 15:19:58 -0700 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org This libgo patch removes some unnecessary EINTR tests I added a couple of months ago. The libgo library always uses SA_RESTART when setting up a signal handler, so EINTR should never happen for functions like read and write. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline. Ian diff -r a76876ca23b2 libgo/go/net/fd.go --- a/libgo/go/net/fd.go Thu Mar 31 13:36:27 2011 -0700 +++ b/libgo/go/net/fd.go Thu Mar 31 15:16:23 2011 -0700 @@ -376,7 +376,7 @@ for { var errno int 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) continue } @@ -411,7 +411,7 @@ for { var errno int 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) continue } @@ -444,7 +444,7 @@ for { var errno int 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) continue } @@ -490,7 +490,7 @@ if nn == len(p) { break } - if (errno == syscall.EAGAIN || errno == syscall.EINTR) && fd.wdeadline >= 0 { + if errno == syscall.EAGAIN && fd.wdeadline >= 0 { pollserver.WaitWrite(fd) continue } @@ -526,7 +526,7 @@ var oserr os.Error for { 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) continue } @@ -560,7 +560,7 @@ for { var errno int 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) continue } @@ -598,7 +598,7 @@ return nil, os.EINVAL } s, sa, e = syscall.Accept(fd.sysfd) - if e != syscall.EAGAIN && e != syscall.EINTR { + if e != syscall.EAGAIN { break } syscall.ForkLock.RUnlock()