From: "U.Nakamura" <usa@...>
Date: 2009-08-19T16:35:56+09:00
Subject: [ruby-dev:39128] Re: [Bug #1952] cannot stop with Ctrl+C

こんにちは、なかむら(う)です。

In message "[ruby-dev:39127] Re: [Bug #1952] cannot stop with Ctrl+C"
    on Aug.19,2009 16:00:28, <matz@ruby-lang.org> wrote:
> うーん、ensureでraiseしたり、その外でrescueでretryしたりして
> いるわけですから、無限ループそのものは「意図通り」なのではな
> いでしょうか。むしろ、raiseがTAG_FAGALで飛ぶ方が気持ちが悪い
> です。

私としてはTAG_FATALが握りつぶし可能であることの方が気持ちが悪
いです。
つまり、いかなる方法でensure節が終了した場合(raiseだろうがreturn
だろうがend到達だろうが)も、TAG_FATALとしての処理を続行すべき
ではないか、ということです。
私の元の文面がよくありませんでしたが、TAG_RAISEでないTAG_FATAL
な例外を発生させる、という意図はありません。

こういう言い方だと「気持ちが悪」くなくなるでしょうか?
それとも、「意図通り」のはずの無限ループが中断されることが「
気持ちが悪い」のでしょうか?


> これはmain threadが他スレッド待ちの間に割り込みが効かない方を
> 直すべきではないでしょうか。

それで1.8と同じ(2回Ctrl+Cでスクリプトを終了できる)にはなりま
すね。


それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>