From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2093.outbound.protection.outlook.com [40.107.100.93]) by sourceware.org (Postfix) with ESMTPS id D00FF3858D37 for ; Mon, 19 Sep 2022 23:54:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D00FF3858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=cornell.edu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cornell.edu ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XTz6OWTgUpkuygIcfXZSIXjKe4HxVVlze62FeZLWtrNUXGc3kO9cMjOPpgPpBizxxddByyM3AHxFuOy5dtiFft6emSL5AOXtQRWHl3KFsQxUzIAF/t1HvBlfP347ewYNO1rrp2NVFZXEBCaZwrpgCIc+ZF0RQdCOVZRejK9TlAmXF9GXMSbrY4mvGoIhUs87OvngA4BT0RxvQhvyIej7+hgHtYXWaiaT7nWF7e3pdfkY9tycc7IXYnao4EvZLajYmucl7vKVmY3esWrUcy6pfoGg54UlStYGtVnXIcs5whJ+ArsNjwh46QSPKq2Ni/q7UhB9vuk49EJhBp3e0l7j8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Zn59K6RtDSqK5pC4R3B3OcKBd6z2t/ffGJPIVMnN+aI=; b=KewKEtU/9Qj8F42kduDVh9AZtc0hGxXW5ZNGsbMGOaCBhqbZMf5+czZuUrAVcSV8RIWzjeVt6wiA9KajAmFLIwSvCJ63a+/1jTOUGyh+TCBzyfV8zo8g0UWayiMsW9Ievkh7JHJafk6Oe55nFSv999bi2k7uej0wS/4ogHNqJrmvBweeluvOUo+Dz+b0mnivCMLDPvOaKsphefNsxxoCRRpZCwAplB8FHZCa+QevYJIN1gpVhjKVozfR5xlnOOjgsMykyVVB3kyIwA6dFXfzUB46qKiWBbVvamoKbwHOMywH7CUgu2UAVlUKh8j20kJqFyxZo4wGfKA/KfzbGZ88Zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cornell.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Zn59K6RtDSqK5pC4R3B3OcKBd6z2t/ffGJPIVMnN+aI=; b=EHlSnjL8e90jOsto4/wcKL6gRjMBfuhpAEcY+6bfUGiPVmfJb2ofp/EPl6PsJP9EhhhdjWwVVsup6QyW+rnrAoEzlH8ZECSMmmmV4YdNppXWg9MehzaNDGy5LHIYFXQ8J3bqlJUmc2rzzaGhTuN/UFTrabCsRJ0cov/dWaw3en4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cornell.edu; Received: from SA0PR04MB7322.namprd04.prod.outlook.com (2603:10b6:806:e2::7) by DM5PR04MB1211.namprd04.prod.outlook.com (2603:10b6:3:a6::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.21; Mon, 19 Sep 2022 23:54:14 +0000 Received: from SA0PR04MB7322.namprd04.prod.outlook.com ([fe80::91f5:ea9:176e:ad14]) by SA0PR04MB7322.namprd04.prod.outlook.com ([fe80::91f5:ea9:176e:ad14%7]) with mapi id 15.20.5632.021; Mon, 19 Sep 2022 23:54:14 +0000 Message-ID: <9e531437-9e27-969f-517e-ec5607212c76@cornell.edu> Date: Mon, 19 Sep 2022 19:54:11 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: FIFO issues Content-Language: en-US To: cygwin@cygwin.com References: <1b28b650-b588-e34f-919e-e75f5a01196f@lyx.org> From: Ken Brown In-Reply-To: <1b28b650-b588-e34f-919e-e75f5a01196f@lyx.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: BLAPR05CA0001.namprd05.prod.outlook.com (2603:10b6:208:36e::6) To SA0PR04MB7322.namprd04.prod.outlook.com (2603:10b6:806:e2::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA0PR04MB7322:EE_|DM5PR04MB1211:EE_ X-MS-Office365-Filtering-Correlation-Id: 9aefbffc-faf5-4b05-a808-08da9a9a41c0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Slh2dspRpfyZeXeMCVKZrIeQFXn+hz+HCpBPXG7HGNjidnR+V5HF9qnX3EV3mx0ESyFTUCjPCuUkPlxhdWsBPv/sdZlzkjLRqzQ/AApzHe/7Ud4tbyZUqM6uVR6OFZShfRiBqQTVIkvCiySQfI8dzm+9W5BEZdfsoFAYu5CpB9u6S8O5NXiWFgZrURkxatupOUh6h79wPis1ALFLS+XTWoWwGbLGyRJuN0Hyxy7RPQfM+xCQ5NXttRa2rdKaUiPhu2Zop1UvUVJ/Or4ZUwbFPqsEk6C8kF8RXhokKic6QL0fO8PXl017gy+kTCPVqKg/lQuliIeJ0GK6BCa5teSozqp4nNH2MD+W7zDKow9znHLSxCDO2lXP62xX+b/d6zqKqjFkNPYk74BWnDlt10auJgsV/U8vbTXfkgLEFM/riaU99ZjqTdPwmHUA2MOIwJURVJmSaDpTv09ovk5ZuKfX/LGTTYVnhvbhJEFXFdBwIw46nmdy5NILa8ZeRHyjUlPWN+5JIY3BZy9PLrK9F0EsCeP1u+Qs6BIDH1DDuC1/4B7aSDp/2IBz0t9aQqm5YSCPzmjSR4ugsxWff/GeBQCMRpm8IqXLVXcgz6uXvkCnItMTYL0/2yr+V5m6dJLU97riL41WPPMqVXHJPPFOUABLAH+U0M+yoxX9zv/sueqptVxog32WdG1zSwrEkKnLa0SHG5EyUqlJgPPxuqJtmPHWrtaP4tHK68+2nFbmQavB4ofs+d86g3IUs9UoOAMHgbQTPinKYydHR7qX1Dpm21DHqjg+RWZW9DkomrnCmS2p4P7C21pkGJW3rleLBVyTBVdGfg2DCuU2Uuh3+u3eRVhgbjb8HgZJuxoy8ZwLoOmBxR4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA0PR04MB7322.namprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(396003)(376002)(136003)(39860400002)(346002)(451199015)(53546011)(6506007)(7116003)(66574015)(2906002)(6512007)(2616005)(186003)(86362001)(31696002)(6486002)(966005)(786003)(316002)(6916009)(8676002)(41300700001)(66946007)(66556008)(66476007)(478600001)(36756003)(6666004)(75432002)(31686004)(3480700007)(8936002)(41320700001)(5660300002)(83380400001)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eTQwUjZWczFES1VNTmRNYWFVaEtSd3Y1L0RSQUk4b0x1OE5ORmhvYTkwbjUv?= =?utf-8?B?Yzk1N0xWV2VOVFV5SnJHSWxXTG9UNVd5QTdUNDVXczE4bDVQdVViazhQVy9Z?= =?utf-8?B?T3Z6dFhuUzdvRzRES2dPbC9qVkxBR3pQMG9aeEY0MEFHKys3TGZ6M1hYRE0r?= =?utf-8?B?ODJscGxFWmVOajlUZ09UQUNOcmJYZDBVdGNmbTUzOEI0dzZiMWRwMUlBN21m?= =?utf-8?B?S0ljZXVWeDlGdmdmd3YwckpjWnFZMklPQmFmb1RYYks3cnpyT3oySi8wWXBt?= =?utf-8?B?QlpjZGxaSVAyRFVwRHM5SzZQbVRDVWZ0MDJVRjRDS3NMZzNTY0RQQnZCcXFY?= =?utf-8?B?d3QxeEI2NVVIczdvWSs2ZytSTHNZd0FTaG9vMHJxWGZaQUlEcFJnTUUzRndD?= =?utf-8?B?aWR3ZzF0bzZDd3ZsSkNPajRqNk5MQVlxOSsxanZWbzdTbHBlaWdRdk5scmIx?= =?utf-8?B?b0VsSUpPNDkzbDRpTkFCbFJVdW8xMWNVY3VRVlhiRTdkOTZvdnYydVRzZkFK?= =?utf-8?B?V3ZuWXI1cDQ4Wm4wR2hIQkNFZnJxbG8rSTVSazcyUG54cVJyNWNwYzZWaTh2?= =?utf-8?B?Q3NRdk1ocmxFeWlsMlEzanMxWFNEZXh0SVBNUDQxZGVZYkFZVlFiTVc1K0pF?= =?utf-8?B?c1hHRGlBR3E5NndTUWF0U2NKN3MvQ3dmQmVWbEM3TmN0T25ZNUlSNVo5L3lk?= =?utf-8?B?ODVRQUd6TjNHdTJHeTlMTVdKdmhPdmtKaU1nZDMzUmJuQklaVmFVVVlhQWdE?= =?utf-8?B?cDF0N0tpQmptQitmbThja1l1NVFnYTJKVDBBVlRJQTZNQ1k0ajBkTWFIT2Nr?= =?utf-8?B?UWlyZDJ5MkE0Tk9IZEQzcGJ5YXp0eG1kMktma0JPQU9ucFh1cGpVeHhoRk11?= =?utf-8?B?bjF4eWRUOW44YU9JUVpRTnpRakJmWUZrdDNtUXVqdllSSEhaS3ExbFhFditn?= =?utf-8?B?eEpJSU42UTh0RXJsMTJaeTVHOUcvczlCMEw4VTJtdWNqaytpMk5iQzJrNDBM?= =?utf-8?B?RkFqQ09TVzJBR2pQSyt2djBQSGpxUHRBbzM5Nlg3YU9CYlBmYzg5emowSXAx?= =?utf-8?B?allyL1BscVdLdDB1SU1sSDZSUzkxZ1FrTjJzZ3hCVkhYN0NsWGpCMi9kOTNQ?= =?utf-8?B?Q1lJOEZ2QlpSMDlYWmZvUlZ3bjk1dlhWc1o3dWNhTDVCQlYvSWN6MXJxZ21j?= =?utf-8?B?N0wyOUZxZnVDQnl0L1RESGNxOUlnMFBBQlV4RERoZXRUSmRwU3VCbUJtSlI1?= =?utf-8?B?ak8rWFhyaS9TR2Z6Z1VNR0prZkwzM3BHZHpQVHFISGc0RnRGUHF4Mmt6NHBJ?= =?utf-8?B?SURaOVB4bWRkK0dzSlJSRHJZbnFTbVUrcEdnbm8vL0hoVDFNM3lTaUNQT3BC?= =?utf-8?B?czZMUnBuaVFNNWRHekI5Y2puQjF1Z21pRGpaczU3UGk5RkdBNjRzWC9vNjFr?= =?utf-8?B?cCt1ckpIaXNVOHFnNml1MXpqRGlZVS9sS2lONzZGZlIyOHNIVTBFNThja0Rr?= =?utf-8?B?ZllaQXdaZjRySkFrYzNROTU0TzJ0VG5Bbk5NSlo2OGFURXptOWIrakdsWk1W?= =?utf-8?B?YmlrL25VQXBSUXpHNnJpSWVSQWlZTzFTcmozMFI1Qy82d3FEdDVhaWx3N2Zp?= =?utf-8?B?TW1XTFdDamhXOFk4S2RLSWhjYXFKc1F3OVR5M0Q2enl0V0FwTm1uQndEdW0w?= =?utf-8?B?NU1pbkVKUnI0ZFBCSHZ6T1UrN0RJdWJkT1BNYkpBc2JCbmpvZkJjSzJhbGxQ?= =?utf-8?B?RHdBNkFRSGx6NksweHkyMGxtTmk5NDJ5QnY5UVpEMEpvekFaNXNyRW5VcTI0?= =?utf-8?B?QUZBemNBS1FlbVFDSmgzbmlaY3lQWDlCeERzTEZrWVJrWjh0SXRpbDAxRFJQ?= =?utf-8?B?OEpDYnN3YVhMQUJ4V1Z3aFBtRjlnMmpwcU53cEtWQnYvbFV3bEFTc1VubUxt?= =?utf-8?B?clBHc2EzMGVGRG1qclJZNkh1b0VLaHI4RlMydGQ1OEtqSjlWdW50Vmg1bHpw?= =?utf-8?B?cHFWMVlZVlpmYUw5bE5YenIvSE5GUHp6ekdON3FTQU9YSXc1NGZFRThkSVZm?= =?utf-8?B?b2RXODJhdVF0cFl1SWFJTElNRTJ1c1plNTJEVXU3V3N1TnNsdzhqYUdmaXJR?= =?utf-8?B?Vm5sZWVxR3pZbS9XdDhaditQdWsxZEhQYk9heGdCRy80N0cyM2t6aURTbFpw?= =?utf-8?Q?RY3DEntJEdHZR8nPa18e/r/BuoE7giXT+O0HuTjcxhp/?= X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 9aefbffc-faf5-4b05-a808-08da9a9a41c0 X-MS-Exchange-CrossTenant-AuthSource: SA0PR04MB7322.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2022 23:54:14.7177 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d7e4366-1b9b-45cf-8e79-b14b27df46e1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2wwIV8Ky/Ux118fQTEOMIhC3UZk2WeEJAyPlUoolbyz8uoTWEb0lvK3aIN/hM5fP7m4+ZSS3MYU3E+3uYhbYOA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR04MB1211 X-Spam-Status: No, score=-3.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,JMQ_SPF_NEUTRAL,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 9/19/2022 6:05 PM, Enrico Forestieri wrote: > 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. Then I guess I'm wrong. I'm really puzzled, because it seems that none of these platforms agree with POSIX, which says the following in its 'read' documentation: When attempting to read from an empty pipe or FIFO: If no process has the pipe open for writing, read() shall return 0 to indicate end-of-file. It seems that there's an exception: If no process has ever had the FIFO open for writing since it was opened for reading, then the FIFO is not considered to be at end-of-file. I'll look into fixing this. But I'd be more confident about it if I could find some documentation of the existing behavior. Ken