なかだです。

At Mon, 10 Sep 2001 03:22:04 +0900,
Nobuyoshi-Nakada wrote:
>  SCOPEはObjectだからサイズを増やせないですね。一応なんとかうま
> く行きそうな感じですが、かなり不安です。

 struct BLOCKでコピーされるのでスタックに置いておくのはダメで
した。

 ところで、これはどっちが正しいんでしょうか。現状では(2)なんで
すが、$_以外の普通のローカル変数は(3)の通り子スレッドの値なので、
これは[ruby-dev:14743]と同じ問題のような気もします。

    sub = nil
    Thread.start do
      $_ = "sub"
      sub = proc {$_}
    end.join
    $_ = "main"
    assert_equal("sub", sub.call)	# (1)
    assert_equal("main", sub.call)	# (2)

    sub = nil
    Thread.start do
      var = "sub"
      sub = proc {var}
    end.join
    var = "main"
    assert_equal("sub", sub.call)	# (3)

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦