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

From: Isamu Mogi <dyob@...>
Date: 2013-03-27 12:51:38 UTC
List: ruby-list #49300
こんにちは。茂木と申します。

Threadに関する質問です。
るりまのThreadのページ http://doc.ruby-lang.org/ja/2.0.0/class/Thread.html に
下記のような記述があるのですが、

----------
■例外発生時のスレッドの振る舞い
(snip)
t = Thread.new do
  Thread.pass # メインスレッドが確実にjoinするように
  raise "unhandled exception"
end
t.join
----------

Thread.passのコメントは、「内部で例外を発生させてそれをrescueしないままにするThreadでは、
明示的にpassを実行しないと親Threadにjoinができない可能性がある」という解釈で正しいで
しょうか?

--
茂木 勇

In This Thread

Prev Next