From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id 558231F953 for ; Sat, 1 Jan 2022 07:13:13 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 869EE1209CA; Sat, 1 Jan 2022 16:13:12 +0900 (JST) Received: from xtrwkhkc.outbound-mail.sendgrid.net (xtrwkhkc.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 4599F1209C2 for ; Sat, 1 Jan 2022 16:13:10 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.me; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to; s=smtpapi; bh=q4ywYgu8piuqGOFwwSfh7648IlQTHxoWSdZYM/GBMLs=; b=RfZVKAKfV2agqr1CUGs9/R/nS8Vx87yxPsrpyuFXdpbAQd2oMrdR/K3d0eLNRN0YLoy7 XfFqYCMBxwP9mh6gM0NceMwE2GDqOFCqQQtg15Q5WuGmje0VFne3i+zdK2ijiuYsaXQdYr DXtJF4k8qZhqo5oKcYYsjzHmXlDfnfLCw= Received: by filterdrecv-55446c4d49-qts9l with SMTP id filterdrecv-55446c4d49-qts9l-1-61CFFF04-2C 2022-01-01 07:13:08.739789601 +0000 UTC m=+10486369.684934238 Received: from herokuapp.com (unknown) by geopod-ismtpd-3-0 (SG) with ESMTP id Ydz1fIelRgmgJ4YfdoqOIA for ; Sat, 01 Jan 2022 07:13:08.724 +0000 (UTC) Date: Sat, 01 Jan 2022 07:13:08 +0000 (UTC) From: "ioquatix (Samuel Williams)" Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Bug X-Redmine-Issue-Id: 18455 X-Redmine-Issue-Author: ioquatix X-Redmine-Sender: ioquatix X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 83204 X-SG-EID: =?us-ascii?Q?RXGrw3WrKfUduNFRrzMMcXYHKEABJI9T84jNjq2g6rBTg=2FXhHIicnPoJUXLutJ?= =?us-ascii?Q?tdNFg7BiEDMUtMCwjaLtb0ItKeRyv3NlZm6AYiJ?= =?us-ascii?Q?s0JX4NY=2Fph4M2iO+29vspO0pnxqvvxaizBjms7G?= =?us-ascii?Q?ji4kTMc2YgCtV9p8FziYX3qwfZjBdCuOzPz5ydI?= =?us-ascii?Q?s=2F4aVPdKdmTAj3TvGf5GtqcH19AhJxd9DLDOYP9?= =?us-ascii?Q?7Z0yjuxsBNH20Stpg7fWyWUD8MaW=2FeVxUbbZ=2Ft3?= =?us-ascii?Q?tCx7=2FUPRjdOHxUoiG+30g=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 106939 Subject: [ruby-core:106939] [Ruby master Bug#18455] `IO#close` has poor performance and difficult to understand semantics. X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Reply-To: Ruby developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE4NDU1IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh bXMpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpCdWcgIzE4NDU1 OiBgSU8jY2xvc2VgIGhhcyBwb29yIHBlcmZvcm1hbmNlIGFuZCBkaWZmaWN1bHQgdG8gdW5kZXJz dGFuZCBzZW1hbnRpY3MuCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODQ1NQoK KiBBdXRob3I6IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlhbXMpCiogU3RhdHVzOiBPcGVuCiogUHJp b3JpdHk6IE5vcm1hbAoqIEJhY2twb3J0OiAyLjY6IFVOS05PV04sIDIuNzogVU5LTk9XTiwgMy4w OiBVTktOT1dOLCAzLjE6IFVOS05PV04KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpgSU8jY2xvc2VgIHNob3VsZCBiZSByZXNwb25zaWJsZSBmb3IgY2xvc2luZyB0aGUg ZmlsZSBkZXNjcmlwdG9yIHJlZmVycmVkIHRvIGJ5IHRoZSBJTyBpbnN0YW5jZS4gV2hlbiBkZWFs aW5nIHdpdGggYnVmZmVyZWQgSU8sIG9uZSBjYW4gYWxzbyBleHBlY3QgdGhpcyB0byBmbHVzaCB0 aGUgaW50ZXJuYWwgYnVmZmVycyBpZiBwb3NzaWJsZS4KCkN1cnJlbnRseSwgYWxsIGJsb2NraW5n IElPIG9wZXJhdGlvbnMgcmVsZWFzZSB0aGUgR1ZMIGFuZCBwZXJmb3JtIHRoZSBibG9ja2luZyBz eXN0ZW0gY2FsbCB1c2luZyBgcmJfdGhyZWFkX2lvX2Jsb2NraW5nX3JlZ2lvbmAuIFRoZSBjdXJy ZW50IGltcGxlbWVudGF0aW9uIHRha2VzIGEgZmlsZSBkZXNjcmlwdG9yIGFuZCBhZGRzIGFuIGVu dHJ5IHRvIHRoZSBWTSBnbG9iYWwgYHdhaXRpbmdfZmRzYCBsaXN0LiBXaGVuIHRoZSBvcGVyYXRp b24gaXMgY29tcGxldGVkLCB0aGUgZW50cnkgaXMgcmVtb3ZlZCBmcm9tIGB3YWl0aW5nX2Zkc2Au CgpXaGVuIGNhbGxpbmcgYElPI2Nsb3NlYCwgdGhpcyBsaXN0IGlzIHRyYXZlcnNlZCBhbmQgYW55 IHRocmVhZHMgcGVyZm9ybWluZyBibG9ja2luZyBvcGVyYXRpb25zIHdpdGggYSBtYXRjaGluZyBm aWxlIGRlc2NyaXB0b3IgYXJlIGludGVycnVwdGVkLiBUaGUgcGVyZm9ybWFuY2Ugb2YgdGhpcyBp cyBPKG51bWJlciBvZiBibG9ja2luZyBJTyBvcGVyYXRpb25zKSB3aGljaCBpbiBwcmFjdGljZSB0 aGUgcGVyZm9ybWFuY2Ugb2YgYElPI2Nsb3NlYCBjYW4gdGFrZSBtaWxsaXNlY29uZHMgd2l0aCAx MCwwMDAgdGhyZWFkcyBwZXJmb3JtaW5nIGJsb2NraW5nIElPLiBUaGlzIHBlcmZvcm1hbmNlIGlz IHVuYWNjZXB0YWJsZS4KCmBgYCBydWJ5CiMhL3Vzci9iaW4vZW52IHJ1YnkKCnJlcXVpcmUgJ2Jl bmNobWFyaycKCmNsYXNzIFJlYWRpbmcKICBkZWYgaW5pdGlhbGl6ZQogICAgQHIsIEB3ID0gSU8u cGlwZQoKICAgIEB0aHJlYWQgPSBUaHJlYWQubmV3IGRvCiAgICAgIEByLnJlYWQKICAgIHJlc2N1 ZSBJT0Vycm9yCiAgICAgICMgSWdub3JlLgogICAgZW5kCiAgZW5kCgogIGF0dHIgOnIKICBhdHRy IDp3CgogIGF0dHIgOnRocmVhZAoKICBkZWYgam9pbgogICAgQHRocmVhZC5qb2luCiAgZW5kCmVu ZAoKZGVmIG1lYXN1cmUoY291bnQgPSAxMCkKICByZWFkaW5ncyA9IGNvdW50LnRpbWVzLm1hcCBk bwogICAgUmVhZGluZy5uZXcKICBlbmQKCiAgc2xlZXAgMTAKCiAgZHVyYXRpb24gPSBCZW5jaG1h cmsubWVhc3VyZSBkbwogICAgcmVhZGluZ3MuZWFjaCBkbyB8cmVhZGluZ3wKICAgICAgcmVhZGlu Zy5yLmNsb3NlCiAgICAgIHJlYWRpbmcudy5jbG9zZQogICAgZW5kCiAgZW5kCgogIGF2ZXJhZ2Ug PSAoZHVyYXRpb24udG90YWwgLyBjb3VudCkgKiAxMDAwLjAKICBwcCBjb3VudDogY291bnQsIGF2 ZXJhZ2U6IHNwcmludGYoIiUwLjJmbXMiLCBhdmVyYWdlKQoKICByZWFkaW5ncy5lYWNoKCY6am9p bikKZW5kCgptZWFzdXJlKCAgIDEwKQptZWFzdXJlKCAgMTAwKQptZWFzdXJlKCAxMDAwKQptZWFz dXJlKDEwMDAwKQpgYGAKCkluIGFkZGl0aW9uLCB0aGUgc2VtYW50aWNzIG9mIHRoaXMgb3BlcmF0 aW9uIGFyZSBjb25mdXNpbmcgYXQgYmVzdC4gV2hpbGUgUnVieSBwcm9ncmFtcyBhcmUgZGVhbGlu ZyB3aXRoIElPIGluc3RhbmNlcywgdGhlIFZNIGlzIGRlYWxpbmcgd2l0aCBmaWxlIGRlc2NyaXB0 b3JzLCBpbiBlZmZlY3QgcGVyZm9ybWluZyBzb21lIGludGVybmFsIGRlLWR1cGxpY2F0aW9uIG9m IElPIHN0YXRlLiBJbiBwcmFjdGljZSwgdGhpcyBsZWFkcyB0byBzdHJhbmdlIGJlaGF2aW91cjoK CmBgYCBydWJ5CiMhL3Vzci9iaW4vZW52IHJ1YnkKCnIsIHcgPSBJTy5waXBlCnIyID0gSU8uZm9y X2ZkKHIudG9faSkKcHAgcjogciwgcjI6IHIyCgp0ID0gVGhyZWFkLm5ldyBkbwogIHIyLnJlYWQg cmVzY3VlIG5pbAogIHIyLnJlYWQgIyBFQkFERgplbmQKCnNsZWVwIDAuNQpyLmNsb3NlCnQuam9p biByZXNjdWUgbmlsCgpwcCByOiByLCByMjogcjIKIyByIGlzIGNsb3NlZCwgcjIgaXMgdmFsaWQg YnV0IHdpbGwgcmFpc2UgRUJBREYgb24gYW55IG9wZXJhdGlvbi4KYGBgCgpJbiBhZGRpdGlvbiwg dGhpcyBjb25mdXNpbmcgYmVoYXZpb3VyIGV4dGVuZHMgdG8gUmFjdG9yIGFuZCBzdGF0ZSBpcyBs ZWFrZWQgYmV0d2VlbiB0aGUgdHdvOgoKYGBgIHJ1YnkKciwgdyA9IElPLnBpcGUKCnJhY3RvciA9 IFJhY3Rvci5uZXcoci50b19pKSBkbyB8ZmR8CiAgcjIgPSBJTy5mb3JfZmQoZmQpCiAgcjIucmVh ZAogICMgcjIucmVhZCAjIEVCQURGCmVuZAoKc2xlZXAgMC41CnIuY2xvc2UKCnBwIHRha2U6IHJh Y3Rvci50YWtlCmBgYAoKSSBwcm9wb3NlIHRoZSBmb2xsb3dpbmcgY2hhbmdlcyB0byBzaW1wbGlm eSB0aGUgc2VtYW50aWNzIGFuZCBpbXByb3ZlIHBlcmZvcm1hbmNlOgoKLSBNb3ZlIHRoZSBzZW1h bnRpY3Mgb2YgYHdhaXRpbmdfZmRzYCBmcm9tIHBlci1mZCB0byBwZXItSU8uIFRoaXMgbWVhbnMg dGhhdCBgSU8jY2xvc2VgIG9ubHkgaW50ZXJydXB0cyBibG9ja2luZyBvcGVyYXRpb25zIHBlcmZv cm1lZCBvbiB0aGUgc2FtZSBJTyBpbnN0YW5jZSByYXRoZXIgdGhhbiBBTlkgSU8gd2hpY2ggcmVm ZXJzIHRvIHRoZSBzYW1lIGZpbGUgZGVzY3JpcHRvci4gSSB0aGluayB0aGlzIGJlaGF2aW91ciBp cyBlYXNpZXIgdG8gdW5kZXJzdGFuZCBhbmQgc3RpbGwgcHJvdGVjdHMgYWdhaW5zdCB0aGUgdmFz dCBtYWpvcml0eSBvZiBpbmNvcnJlY3QgdXNhZ2UuCi0gTW92ZSB0aGUgZGV0YWlscyBvZiBgc3Ry dWN0IHJiX2lvX3RgIHRvIGBpbnRlcm5hbC9pby5oYCBzbyB0aGF0IHRoZSBpbXBsZW1lbnRhdGlv biBkZXRhaWxzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4KCiMjIEJlbmNo bWFya3MKCkJlZm9yZToKCmBgYAp7OmNvdW50PT4xMCwgOmF2ZXJhZ2U9PiIwLjE5bXMifQp7OmNv dW50PT4xMDAsIDphdmVyYWdlPT4iMC4xMW1zIn0Kezpjb3VudD0+MTAwMCwgOmF2ZXJhZ2U9PiIw LjE4bXMifQp7OmNvdW50PT4xMDAwMCwgOmF2ZXJhZ2U9PiIxLjE2bXMifQpgYGAKCkFmdGVyOgoK YGBgCns6Y291bnQ9PjEwLCA6YXZlcmFnZT0+IjAuMjBtcyJ9Cns6Y291bnQ9PjEwMCwgOmF2ZXJh Z2U9PiIwLjExbXMifQp7OmNvdW50PT4xMDAwLCA6YXZlcmFnZT0+IjAuMTVtcyJ9Cns6Y291bnQ9 PjEwMDAwLCA6YXZlcmFnZT0+IjAuNjhtcyJ9CmBgYAoKQWZ0ZXIgaW52ZXN0aWdhdGluZyB0aGlz IGZ1cnRoZXIgSSBmb3VuZCB0aGF0IHRoZSBgcmJfdGhyZWFkX2lvX2Jsb2NraW5nX3JlZ2lvbmAg dXNpbmcgYHViZl9zZWxlY3RgIGNhbiBiZSBpbmNyZWRpYmx5IHNsb3csIHByb3BvcnRpb25hbCB0 byB0aGUgbnVtYmVyIG9mIHRocmVhZHMuIEkgZG9uJ3Qga25vdyB3aGV0aGVyIGl0J3MgYWR2aXNh YmxlIGJ1dDoKCmBgYCBjCiAgICAgICAgQkxPQ0tJTkdfUkVHSU9OKGJsb2NraW5nX25vZGUudGhy ZWFkLCB7CiAgICAgICAgICAgIHZhbCA9IGZ1bmMoZGF0YTEpOwogICAgICAgICAgICBzYXZlZF9l cnJubyA9IGVycm5vOwogICAgICAgIH0sIE5VTEwgLyogdWJmX3NlbGVjdCAqLywgYmxvY2tpbmdf bm9kZS50aHJlYWQsIEZBTFNFKTsKYGBgCgpEaXNhYmxpbmcgdGhlIFVCRiBmdW5jdGlvbiBhbmQg cmVseWluZyBvbiBgcmVhZChmZCwgLi4uKWAvYHdyaXRlKGZkLCAuLi4pYCBibG9ja2luZyBvcGVy YXRpb25zIHRvIGZhaWwgd2hlbiBgY2xvc2UoZmQpYCBpcyBpbnZva2VkIG1pZ2h0IGJlIHN1ZmZp Y2llbnQ/IFRoaXMgbmVlZHMgbW9yZSBpbnZlc3RpZ2F0aW9uIGJ1dCBhZnRlciBtYWtpbmcgdGhp cyBjaGFuZ2UsIHdlIGhhdmUgY29uc3RhbnQtdGltZSBJTyNjbG9zZS4KCmBgYAp7OmNvdW50PT4x MCwgOmF2ZXJhZ2U9PiIwLjEzbXMifQp7OmNvdW50PT4xMDAsIDphdmVyYWdlPT4iMC4wNm1zIn0K ezpjb3VudD0+MTAwMCwgOmF2ZXJhZ2U9PiIwLjA0bXMifQp7OmNvdW50PT4xMDAwMCwgOmF2ZXJh Z2U9PiIwLjA5bXMifQpgYGAKCldoaWNoIGlzIGlkZWFsbHkgd2hhdCB3ZSB3YW50LgoKCgotLSAK aHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCg==