[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]