From: matz@... (Yukihiro Matsumoto) Date: 1997-03-03T18:28:50+09:00 Subject: [ruby-list:2298] Re: raise == Thread.current.raise ? まつもと ゆきひろです. In message "[ruby-list:2296] Re: raise == Thread.current.raise ?" on 97/03/03, sinara@blade.nagaokaut.ac.jp writes: |原です。 |> |スレッド内の raise/fail の仕様が変わってしまったようですね。 |> |> 昔からこうだったと思うのですが….すくなくともこうするつもり |> でこうなっています. | |え?昔は違ってましたよ。それが Thread#raise を作った動機 |だったんですよね。 今確認したら,昔は違っていましたね.勘違い.でも,これは私の 意図とは違う(つまりバグ)です. Thread.raiseを作った目的はtimeoutを実装するためだけだったよ うな気がしています. |もちろん Thread#raise が出来たのだから、こちらは例外で |終了すべきでは。 その例外はメインスレッドの「どこ」で発生すべきだと思います? Thread.start? 現在実行中の場所? 現実的な選択肢は * Thread.startは例外を飲み込んでしまう(現状) * Threadが例外終了するとメインスレッドで再raiseされる のいずれかくらいかなあと思いますけど.後者が使いやすいかどう かはちょっと疑問です.各スレッドの独立性の問題のようにも思い ますが. まつもと ゆきひろ /:|)