[ruby-dev:24354] finalizer

From: Tanaka Akira <akr@...17n.org>
Date: 2004-09-27 03:59:00 UTC
List: ruby-dev #24354
In article <200409270225.i8R2PDfs014206@sharui.nakada.niregi.kanuma.tochigi.jp>,
  nobu@ruby-lang.org writes:

> これってどうなるのが正しいんでしょうね。

これまでの経験の結果、finalizer の実行を gc から直接行なうのが良くない、
という考えに至りました。

finalizer の実行は、rb_eval などのユーザのコードが動いてもおかしくない
タイミングまで遅延する挙動をデフォルトにするほうがよいのではないでしょ
うか。

そうすれば、メモリ確保のタイミングでユーザのコードが動いて配列の長さや
ら何やらが変わってしまうことを考慮せずに済みます。

仮にそうなるとすれば、x の変化は遅延されて Array#* に影響を与えなくな
るので、

> 2. (1..10).to_a * 10

となると考えられます。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread