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,T_SCC_BODY_TEXT_LINE,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 4AB7C1F4CE for ; Mon, 4 Apr 2022 02:02:57 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id B8FD9120A1D; Mon, 4 Apr 2022 11:02:53 +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 51C5C120A19 for ; Mon, 4 Apr 2022 11:02:51 +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=hSqYQTZju01N3nLpR1cSwbWDW7qu1L8qKRWzqAjfoRo=; b=GNy1UFTX/GYLmOSewtXfIS+io5g8fZ8/bUAZFGGbehCSNUZAqClxA00d1uubQB/AyRCI O9NhwEkSqsfjA2myY/MPVrrHhE7HvbIHiV/6NOs3s2Qwp0yZCDeNq+o9XlwtcDmSat7lM/ oHHiHKwzPpVlkSzWAngNBOzJBqz15n4Ag= Received: by filterdrecv-656998cfdd-8pml9 with SMTP id filterdrecv-656998cfdd-8pml9-1-624A51C9-1C 2022-04-04 02:02:49.579703869 +0000 UTC m=+16770929.751691151 Received: from herokuapp.com (unknown) by geopod-ismtpd-6-4 (SG) with ESMTP id PpYkmIjeQOyjIOTpSlCLig for ; Mon, 04 Apr 2022 02:02:49.513 +0000 (UTC) Date: Mon, 04 Apr 2022 02:02:49 +0000 (UTC) From: "shyouhei (Shyouhei Urabe)" 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: shyouhei 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: 84500 X-SG-EID: =?us-ascii?Q?o3CRzLNVtwIIckr5KMtn1Vo7zCoqqkkWfvJxXn0GTa5oA1dXT+9UMDBil5Y1gE?= =?us-ascii?Q?LukXAzJfAIyTtgxf53+l3j0WNCeKrYwg=2FFg9r0G?= =?us-ascii?Q?l9DIGEKukyoMjbV9SwDaWNJ6mBdcF1kUj2Nuvxa?= =?us-ascii?Q?qFdPL0JbPjXIVclqpH88kx+A1E9Vk2+Q4SOrXNo?= =?us-ascii?Q?GD4GBaMLjj7+f5eSqW0LxA=2F5P0n5cEu7lvXeqEx?= =?us-ascii?Q?Zm8R6rlsvwkQSNM3Sr8AsD7hJ7dcnY853UHrOEQ?= =?us-ascii?Q?wjiW99NpKiMpoNw4JGrBQ=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 108168 Subject: [ruby-core:108168] [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" SXNzdWUgIzE4NDU1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgc2h5b3VoZWkgKFNoeW91aGVpIFVyYWJl KS4KCgppb3F1YXRpeCAoU2FtdWVsIFdpbGxpYW1zKSB3cm90ZSBpbiAjbm90ZS00Ogo+IEBzaHlv dWhlaSB3aGF0IHdhcyB0aGUgcG9pbnQgb2YgaHR0cHM6Ly9naXRodWIuY29tL2lvcXVhdGl4L3J1 YnkvY29tbWl0L2IxMjFjZmRlNWZiYzhjZDIwNjg0YTVmZDk0MDQ3ZjQwMzIzYTgzNTMgLSBQZXJm b3JtYW5jZT8gQ29uc2lzdGVuY3k/IFNvbWV0aGluZyBlbHNlPwoKSGVsbG8sIGByYl9pb19mcHRy X2ZpbmFsaXplX2ludGVybmFsYCB0aGlzIGlzIGEgdmVyeSB0aW55IHBlZXBob2xlIG9wdGltaXNh dGlvbiB0byBvbWl0IHJldHVybiB2YWx1ZSB3aGVuIHBvc3NpYmxlLiAgSSBkaWRuJ3QgaW5kZW50 IHRvIG1ha2UgaXQgcHVibGljLiAgSWYgaXQgaXMgbm93IHRoYXQgaXNuJ3Qgd2hhdCBJIHdhbnQu CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkJ1ZyAjMTg0NTU6IGBJ TyNjbG9zZWAgaGFzIHBvb3IgcGVyZm9ybWFuY2UgYW5kIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5k IHNlbWFudGljcy4KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4NDU1I2NoYW5n ZS05NzE0MgoKKiBBdXRob3I6IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlhbXMpCiogU3RhdHVzOiBP cGVuCiogUHJpb3JpdHk6IE5vcm1hbAoqIEJhY2twb3J0OiAyLjY6IFVOS05PV04sIDIuNzogVU5L Tk9XTiwgMy4wOiBVTktOT1dOLCAzLjE6IFVOS05PV04KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpgSU8jY2xvc2VgIHNob3VsZCBiZSByZXNwb25zaWJsZSBmb3IgY2xv c2luZyB0aGUgZmlsZSBkZXNjcmlwdG9yIHJlZmVycmVkIHRvIGJ5IHRoZSBJTyBpbnN0YW5jZS4g V2hlbiBkZWFsaW5nIHdpdGggYnVmZmVyZWQgSU8sIG9uZSBjYW4gYWxzbyBleHBlY3QgdGhpcyB0 byBmbHVzaCB0aGUgaW50ZXJuYWwgYnVmZmVycyBpZiBwb3NzaWJsZS4KCkN1cnJlbnRseSwgYWxs IGJsb2NraW5nIElPIG9wZXJhdGlvbnMgcmVsZWFzZSB0aGUgR1ZMIGFuZCBwZXJmb3JtIHRoZSBi bG9ja2luZyBzeXN0ZW0gY2FsbCB1c2luZyBgcmJfdGhyZWFkX2lvX2Jsb2NraW5nX3JlZ2lvbmAu IFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRha2VzIGEgZmlsZSBkZXNjcmlwdG9yIGFuZCBh ZGRzIGFuIGVudHJ5IHRvIHRoZSBWTSBnbG9iYWwgYHdhaXRpbmdfZmRzYCBsaXN0LiBXaGVuIHRo ZSBvcGVyYXRpb24gaXMgY29tcGxldGVkLCB0aGUgZW50cnkgaXMgcmVtb3ZlZCBmcm9tIGB3YWl0 aW5nX2Zkc2AuCgpXaGVuIGNhbGxpbmcgYElPI2Nsb3NlYCwgdGhpcyBsaXN0IGlzIHRyYXZlcnNl ZCBhbmQgYW55IHRocmVhZHMgcGVyZm9ybWluZyBibG9ja2luZyBvcGVyYXRpb25zIHdpdGggYSBt YXRjaGluZyBmaWxlIGRlc2NyaXB0b3IgYXJlIGludGVycnVwdGVkLiBUaGUgcGVyZm9ybWFuY2Ug b2YgdGhpcyBpcyBPKG51bWJlciBvZiBibG9ja2luZyBJTyBvcGVyYXRpb25zKSB3aGljaCBpbiBw cmFjdGljZSB0aGUgcGVyZm9ybWFuY2Ugb2YgYElPI2Nsb3NlYCBjYW4gdGFrZSBtaWxsaXNlY29u ZHMgd2l0aCAxMCwwMDAgdGhyZWFkcyBwZXJmb3JtaW5nIGJsb2NraW5nIElPLiBUaGlzIHBlcmZv cm1hbmNlIGlzIHVuYWNjZXB0YWJsZS4KCmBgYCBydWJ5CiMhL3Vzci9iaW4vZW52IHJ1YnkKCnJl cXVpcmUgJ2JlbmNobWFyaycKCmNsYXNzIFJlYWRpbmcKICBkZWYgaW5pdGlhbGl6ZQogICAgQHIs IEB3ID0gSU8ucGlwZQoKICAgIEB0aHJlYWQgPSBUaHJlYWQubmV3IGRvCiAgICAgIEByLnJlYWQK ICAgIHJlc2N1ZSBJT0Vycm9yCiAgICAgICMgSWdub3JlLgogICAgZW5kCiAgZW5kCgogIGF0dHIg OnIKICBhdHRyIDp3CgogIGF0dHIgOnRocmVhZAoKICBkZWYgam9pbgogICAgQHRocmVhZC5qb2lu CiAgZW5kCmVuZAoKZGVmIG1lYXN1cmUoY291bnQgPSAxMCkKICByZWFkaW5ncyA9IGNvdW50LnRp bWVzLm1hcCBkbwogICAgUmVhZGluZy5uZXcKICBlbmQKCiAgc2xlZXAgMTAKCiAgZHVyYXRpb24g PSBCZW5jaG1hcmsubWVhc3VyZSBkbwogICAgcmVhZGluZ3MuZWFjaCBkbyB8cmVhZGluZ3wKICAg ICAgcmVhZGluZy5yLmNsb3NlCiAgICAgIHJlYWRpbmcudy5jbG9zZQogICAgZW5kCiAgZW5kCgog IGF2ZXJhZ2UgPSAoZHVyYXRpb24udG90YWwgLyBjb3VudCkgKiAxMDAwLjAKICBwcCBjb3VudDog Y291bnQsIGF2ZXJhZ2U6IHNwcmludGYoIiUwLjJmbXMiLCBhdmVyYWdlKQoKICByZWFkaW5ncy5l YWNoKCY6am9pbikKZW5kCgptZWFzdXJlKCAgIDEwKQptZWFzdXJlKCAgMTAwKQptZWFzdXJlKCAx MDAwKQptZWFzdXJlKDEwMDAwKQpgYGAKCkluIGFkZGl0aW9uLCB0aGUgc2VtYW50aWNzIG9mIHRo aXMgb3BlcmF0aW9uIGFyZSBjb25mdXNpbmcgYXQgYmVzdC4gV2hpbGUgUnVieSBwcm9ncmFtcyBh cmUgZGVhbGluZyB3aXRoIElPIGluc3RhbmNlcywgdGhlIFZNIGlzIGRlYWxpbmcgd2l0aCBmaWxl IGRlc2NyaXB0b3JzLCBpbiBlZmZlY3QgcGVyZm9ybWluZyBzb21lIGludGVybmFsIGRlLWR1cGxp Y2F0aW9uIG9mIElPIHN0YXRlLiBJbiBwcmFjdGljZSwgdGhpcyBsZWFkcyB0byBzdHJhbmdlIGJl aGF2aW91cjoKCmBgYCBydWJ5CiMhL3Vzci9iaW4vZW52IHJ1YnkKCnIsIHcgPSBJTy5waXBlCnIy ID0gSU8uZm9yX2ZkKHIudG9faSkKcHAgcjogciwgcjI6IHIyCgp0ID0gVGhyZWFkLm5ldyBkbwog IHIyLnJlYWQgcmVzY3VlIG5pbAogIHIyLnJlYWQgIyBFQkFERgplbmQKCnNsZWVwIDAuNQpyLmNs b3NlCnQuam9pbiByZXNjdWUgbmlsCgpwcCByOiByLCByMjogcjIKIyByIGlzIGNsb3NlZCwgcjIg aXMgdmFsaWQgYnV0IHdpbGwgcmFpc2UgRUJBREYgb24gYW55IG9wZXJhdGlvbi4KYGBgCgpJbiBh ZGRpdGlvbiwgdGhpcyBjb25mdXNpbmcgYmVoYXZpb3VyIGV4dGVuZHMgdG8gUmFjdG9yIGFuZCBz dGF0ZSBpcyBsZWFrZWQgYmV0d2VlbiB0aGUgdHdvOgoKYGBgIHJ1YnkKciwgdyA9IElPLnBpcGUK CnJhY3RvciA9IFJhY3Rvci5uZXcoci50b19pKSBkbyB8ZmR8CiAgcjIgPSBJTy5mb3JfZmQoZmQp CiAgcjIucmVhZAogICMgcjIucmVhZCAjIEVCQURGCmVuZAoKc2xlZXAgMC41CnIuY2xvc2UKCnBw IHRha2U6IHJhY3Rvci50YWtlCmBgYAoKSSBwcm9wb3NlIHRoZSBmb2xsb3dpbmcgY2hhbmdlcyB0 byBzaW1wbGlmeSB0aGUgc2VtYW50aWNzIGFuZCBpbXByb3ZlIHBlcmZvcm1hbmNlOgoKLSBNb3Zl IHRoZSBzZW1hbnRpY3Mgb2YgYHdhaXRpbmdfZmRzYCBmcm9tIHBlci1mZCB0byBwZXItSU8uIFRo aXMgbWVhbnMgdGhhdCBgSU8jY2xvc2VgIG9ubHkgaW50ZXJydXB0cyBibG9ja2luZyBvcGVyYXRp b25zIHBlcmZvcm1lZCBvbiB0aGUgc2FtZSBJTyBpbnN0YW5jZSByYXRoZXIgdGhhbiBBTlkgSU8g d2hpY2ggcmVmZXJzIHRvIHRoZSBzYW1lIGZpbGUgZGVzY3JpcHRvci4gSSB0aGluayB0aGlzIGJl aGF2aW91ciBpcyBlYXNpZXIgdG8gdW5kZXJzdGFuZCBhbmQgc3RpbGwgcHJvdGVjdHMgYWdhaW5z dCB0aGUgdmFzdCBtYWpvcml0eSBvZiBpbmNvcnJlY3QgdXNhZ2UuCi0gTW92ZSB0aGUgZGV0YWls cyBvZiBgc3RydWN0IHJiX2lvX3RgIHRvIGBpbnRlcm5hbC9pby5oYCBzbyB0aGF0IHRoZSBpbXBs ZW1lbnRhdGlvbiBkZXRhaWxzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4K CiMjIEJlbmNobWFya3MKCkJlZm9yZToKCmBgYAp7OmNvdW50PT4xMCwgOmF2ZXJhZ2U9PiIwLjE5 bXMifQp7OmNvdW50PT4xMDAsIDphdmVyYWdlPT4iMC4xMW1zIn0Kezpjb3VudD0+MTAwMCwgOmF2 ZXJhZ2U9PiIwLjE4bXMifQp7OmNvdW50PT4xMDAwMCwgOmF2ZXJhZ2U9PiIxLjE2bXMifQpgYGAK CkFmdGVyOgoKYGBgCns6Y291bnQ9PjEwLCA6YXZlcmFnZT0+IjAuMjBtcyJ9Cns6Y291bnQ9PjEw MCwgOmF2ZXJhZ2U9PiIwLjExbXMifQp7OmNvdW50PT4xMDAwLCA6YXZlcmFnZT0+IjAuMTVtcyJ9 Cns6Y291bnQ9PjEwMDAwLCA6YXZlcmFnZT0+IjAuNjhtcyJ9CmBgYAoKQWZ0ZXIgaW52ZXN0aWdh dGluZyB0aGlzIGZ1cnRoZXIgSSBmb3VuZCB0aGF0IHRoZSBgcmJfdGhyZWFkX2lvX2Jsb2NraW5n X3JlZ2lvbmAgdXNpbmcgYHViZl9zZWxlY3RgIGNhbiBiZSBpbmNyZWRpYmx5IHNsb3csIHByb3Bv cnRpb25hbCB0byB0aGUgbnVtYmVyIG9mIHRocmVhZHMuIEkgZG9uJ3Qga25vdyB3aGV0aGVyIGl0 J3MgYWR2aXNhYmxlIGJ1dDoKCmBgYCBjCiAgICAgICAgQkxPQ0tJTkdfUkVHSU9OKGJsb2NraW5n X25vZGUudGhyZWFkLCB7CiAgICAgICAgICAgIHZhbCA9IGZ1bmMoZGF0YTEpOwogICAgICAgICAg ICBzYXZlZF9lcnJubyA9IGVycm5vOwogICAgICAgIH0sIE5VTEwgLyogdWJmX3NlbGVjdCAqLywg YmxvY2tpbmdfbm9kZS50aHJlYWQsIEZBTFNFKTsKYGBgCgpEaXNhYmxpbmcgdGhlIFVCRiBmdW5j dGlvbiBhbmQgcmVseWluZyBvbiBgcmVhZChmZCwgLi4uKWAvYHdyaXRlKGZkLCAuLi4pYCBibG9j a2luZyBvcGVyYXRpb25zIHRvIGZhaWwgd2hlbiBgY2xvc2UoZmQpYCBpcyBpbnZva2VkIG1pZ2h0 IGJlIHN1ZmZpY2llbnQ/IFRoaXMgbmVlZHMgbW9yZSBpbnZlc3RpZ2F0aW9uIGJ1dCBhZnRlciBt YWtpbmcgdGhpcyBjaGFuZ2UsIHdlIGhhdmUgY29uc3RhbnQtdGltZSBJTyNjbG9zZS4KCmBgYAp7 OmNvdW50PT4xMCwgOmF2ZXJhZ2U9PiIwLjEzbXMifQp7OmNvdW50PT4xMDAsIDphdmVyYWdlPT4i MC4wNm1zIn0Kezpjb3VudD0+MTAwMCwgOmF2ZXJhZ2U9PiIwLjA0bXMifQp7OmNvdW50PT4xMDAw MCwgOmF2ZXJhZ2U9PiIwLjA5bXMifQpgYGAKCldoaWNoIGlzIGlkZWFsbHkgd2hhdCB3ZSB3YW50 LgoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCg==