From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.santannapisa.it (mail.sssup.it [193.205.80.98]) by sourceware.org (Postfix) with ESMTP id 951183858D28 for ; Mon, 19 Sep 2022 22:06:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 951183858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=lyx.org Authentication-Results: sourceware.org; spf=none smtp.mailfrom=lyx.org Received: from sirio.sssup.it ([193.205.83.80] verified) by santannapisa.it (CommuniGate Pro SMTP 6.1.11) with ESMTPS id 177161704 for cygwin@cygwin.com; Tue, 20 Sep 2022 00:05:58 +0200 Received: from [192.168.1.95] (host-87-14-44-85.retail.telecomitalia.it [87.14.44.85]) by sirio.sssup.it (8.14.5+Sun/8.14.5) with ESMTP id 28JM5tUl008572 for ; Tue, 20 Sep 2022 00:05:57 +0200 (CEST) Content-Type: multipart/alternative; boundary="------------f2VYVc0c2k1FjANrG6bQN3uH" Message-ID: <1b28b650-b588-e34f-919e-e75f5a01196f@lyx.org> Date: Tue, 20 Sep 2022 00:05:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 To: cygwin@cygwin.com References: From: Enrico Forestieri Subject: Re: FIFO issues In-Reply-To: X-Spam-Status: No, score=0.5 required=5.0 tests=BAYES_00,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,NICE_REPLY_A,RCVD_IN_BARRACUDACENTRAL,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------f2VYVc0c2k1FjANrG6bQN3uH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Ken Brown wrote: > I did an internet search on this issue and found the following, which describes the > situation we're discussing: > https://stackoverflow.com/questions/14594508/fifo-pipe-is-always-readable-in-select > According to that post, select on Linux will wait for a writer the first time it's > called to check read readiness for a FIFO opened for reading with O_NONBLOCK set. > But if the writer then closes the FIFO, subsequent calls to select will always find > the FIFO read ready (and read will return 0). This behavior is not documented, as far as > I can tell, and in fact it contradicts the existing documentation (both POSIX and Linux). > So I don't think someone trying to write a portable program should rely on it. Please, note that this code was working on cygwin the way it works on linux until some time ago, maybe last year, I am not sure. I also found this stackoverflow discussion: https://stackoverflow.com/questions/28851639/select-with-non-blocking-reads I tried the code also on Solaris and NetBSD and it works exactly as on linux, so I think it is portable. -- Enrico --------------f2VYVc0c2k1FjANrG6bQN3uH--