[ruby-list:49302] Re: 例外を飛ばすThread内ではpassをしないとそのThreadはjoinできないことがある?

From: Nobuyoshi Nakada <nobu@...>
Date: 2013-03-28 00:21:35 UTC
List: ruby-list #49302
なかだです。

At Thu, 28 Mar 2013 04:28:12 +0900,
KOSAKI Motohiro wrote in [ruby-list:49301]:
> > Thread.passのコメントは、「内部で例外を発生させてそれをrescueしないままにするThreadでは、
> > 明示的にpassを実行しないと親Threadにjoinができない可能性がある」という解釈で正しいで
> > しょうか?
> 
> サンプルが間違ってるだけじゃないかな。Thread.passはあくまで一回パスにすぎないので、
> 一回パスしたことによって、メインスレッドが t.join の行までたどり着けるかは保証されてない。
> まあ、もっともこの高々5行のコードで辿りつけないような状況・OSは思いつかないけれども。

すでにそのスレッドが例外で終了していた場合にも、Thread#joinで例
外が再送出されるはずです。そうなっていない場合はバグですので、も
し実際にそういう状況が見つかったらbugs.ruby-lang.orgにチケットを
登録してください。

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

In This Thread