ruby-reference-manual:3867
From: sho-h@n...
Date: Wed, 27 Aug 2014 02:00:14 +0000
Subject: [ruby-reference-manual:3867] [るりまプロジェクト - Bug #10160] [Rejected] Tempfile.open のサンプルコードが GC 次第で動作しないコードになっている
Issue #10160 has been updated by Sho Hashimoto. Status changed from Open to Rejected ありがとうございます。 確かにそうかもしれないのですが、他にも多数ありそうですし、tempfile のサンプルは他に close 後に再 open するものもありますし、対応まではしなくてよいのではないかと思いました。 ---------------------------------------- Bug #10160: Tempfile.open のサンプルコードが GC 次第で動作しないコードになっている https://bugs.ruby-lang.org/issues/10160#change-48493 * Author: Fumiaki Matsushima * Status: Rejected * Priority: Normal * Assignee: * Category: * Target version: * reporter: * ruby_version: ---------------------------------------- 下記のコードが掲載されていますが、Tempfile のインスタンスへの参照が存在しないため `Tempfile.open` のブロックを抜けた後に GC されるとテンポラリファイルが削除されてしまい、 `File.read` に失敗します。 ```ruby require 'tempfile' path = Tempfile.open("temp"){|fp| fp.puts "hoge" fp.path } p path # ここで GC が走ると path にファイルが存在しないため、エラーになる p File.read(path) #=> "hoge\n" ``` -- https://bugs.ruby-lang.org/