From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21064 invoked by alias); 10 Aug 2015 12:41:33 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 36043 Received: (qmail 26725 invoked from network); 10 Aug 2015 12:41:31 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=ham autolearn_force=no version=3.4.0 X-AuditID: cbfec7f5-f794b6d000001495-66-55c8999b8a8c Date: Mon, 10 Aug 2015 13:31:21 +0100 From: Peter Stephenson To: Oliver Kiddle , Zsh workers Subject: Re: PATCH: ignore EINTR in ztcp/zsocket accept() Message-id: <20150810133121.0df58da4@pwslap01u.europe.root.pri> In-reply-to: <21555.1439209139@thecus.kiddle.eu> References: <20150810102212.GA45526@Qliphoth.local> <21555.1439209139@thecus.kiddle.eu> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrNLMWRmVeSWpSXmKPExsVy+t/xy7qzZ54INdh7S9di0vzprBYHmx8y OTB5HD/TyOKx6uAHpgCmKC6blNSczLLUIn27BK6Mo/d/Mxc8Yq7ou7yctYHxI1MXIyeHhICJ xIsZ7YwQtpjEhXvr2UBsIYGljBL3Vjt3MXIB2Q1MEvcP7mOGcLYxSnxbfBasg0VAVWL/qVdg HWwChhJTN80Gi4sIeEl8OrwdKM7BISxgKfFzoQ5ImFfAXuLu0+2MIGFOAQOJK+tSIXZFSrx8 1ssCYvML6Etc/fsJ6jZ7iZlXzjBCtApK/Jh8D6yGWUBLYvO2JlYIW15i85q3zBBz1CVu3N3N PoFRaBaSlllIWmYhaVnAyLyKUTS1NLmgOCk910ivODG3uDQvXS85P3cTIySIv+5gXHrM6hCj AAejEg/vjM3HQ4VYE8uKK3MPMUpwMCuJ8EZWnwgV4k1JrKxKLcqPLyrNSS0+xCjNwaIkzjtz 1/sQIYH0xJLU7NTUgtQimCwTB6dUAyOzi8kF9VleHj0JhgeTd2ZGLzwtwv0nWUJQY/ISkzVp /wzOdq5YdOrKJm0zgelL9ZVWsrtFf+FLvpB1o88k+45n4u+VgbtDe5n9Cp5XGT600uxdtZ5D aVtuuo+J3daY9CnrojV7TZ/6ChuHGu69dYa3bFXkQkGBL5ZL4s6YsO/cl8gycfraNUosxRmJ hlrMRcWJAKVXrSdeAgAA On Mon, 10 Aug 2015 14:18:59 +0200 Oliver Kiddle wrote: > Joshua Krusell wrote: > > - { > > + do { > > + rfd = accept(lfd, (struct sockaddr *)&soun, &len); > > + } while (errno == EINTR && !errflag); > > On success, errno is not set to zero. So if it happens to have a stray > value of EINTR before the loop, this could loop despite accept having > succeeded. Shouldn't rfd == -1 also be included in the condition? Yes, you're right. pws