From: nobu.nakada@... Date: 2003-09-01T17:49:20+09:00 Subject: [ruby-dev:21302] Re: スレッド内の例外でRuby停止 なかだです。 At Mon, 1 Sep 2003 16:49:51 +0900, Yukihiro Matsumoto wrote: > それは良かった。実はあのパッチがどんな変更をしているのか十分 > に把握していないのですが、まあ取り込みましょう。コミットをお > 願いします。> なかださん。 error_print()がstderr直接から$stderr経由で出力するようになった ために、[ruby-dev:21280]のようにrubyコードが実行される場合があ ります。で、$DEBUG=trueの場合スレッド終了後にこの関数を呼ぶとき には、カレントスレッドは終了したばかりのスレッドになっています。 この状態でIO#flushでselect待ちに入ってしまうと、THREAD_KILLEDに なっていたはずのスレッドが復活してしまいます。 変更点は、error_print()をメインスレッドに切り替わるまで遅れさせ ること、そのためのコンテキストスイッチの状態を追加したこと、で す。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦