From: "U.Nakamura" Date: 2009-08-19T17:49:23+09:00 Subject: [ruby-dev:39131] Re: [Bug #1952] cannot stop with Ctrl+C こんにちは、なかむら(う)です。 In message "[ruby-dev:39129] Re: [Bug #1952] cannot stop with Ctrl+C" on Aug.19,2009 17:06:30, wrote: > これなんですが、そもそもなぜInterruptがTAG_FATALなんでしょう > か。1.8では普通にTAG_RAISEだと思います。もちろん、うささんに > 聞いてもしょうがないんですが。 あれ、と思って追い直してみたところ、TAG_FATALはvm_exec()の中 で消尽されていて、eval.c内にはTAG_RAISEで処理されていました。 すみません... というわけで、 > * kill -9を必要とするのは問題である。ので、main threadは割 > り込み可能にしておくべき とりあえずこれですね。 ちなみに、thread.c:320の/* ignore exception */のところになり ます。 > * C-cのことは別にして、うささんがおっしゃるようにTAG_FATAL > 状態でensureした場合、たとえ途中で通常のraiseがあってもそ > れは無視して、TAG_FATALを継続するという仕様は十分ありえる これはそのうちTAG_FATALを起こす方法を考えて研究してみます。 それでは。 -- U.Nakamura