[#45906] ' failures. — Tanaka Akira <akr@...>
' の扱いが変化したことで、テストが失敗しているようです。
9 messages
2012/07/04
[#45910] [ruby-trunk - Bug #6694][Open] Thread.new without block. — "ko1 (Koichi Sasada)" <redmine@...>
24 messages
2012/07/04
[#45928] Re: [ruby-cvs:43524] kosaki:r36348 (trunk): * include/ruby/ruby.h: Removed RUBY_GLOBAL_SETUP complely. It is — SASADA Koichi <ko1@...>
ささだです.
3 messages
2012/07/09
[#45973] [ruby-trunk - Bug #6751][Assigned] remove tempfiles early. — "akr (Akira Tanaka)" <akr@...>
4 messages
2012/07/18
[#45976] [ruby-trunk - Bug #6756][Open] FileUtils.rm_rf がアクセス権のない空ディレクトリを削除しない — "fumiyas (Fumiyasu SATOH)" <fumiyas@...>
9 messages
2012/07/20
[#45977] [ruby-trunk - Feature #6757][Open] [PATCH] Add Process.getsid — "fumiyas (Fumiyasu SATOH)" <fumiyas@...>
6 messages
2012/07/20
[#46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c — "authorNari (Narihiro Nakamura)" <authorNari@...>
13 messages
2012/07/30
[ruby-dev:45900] Re: Question: Thread#kill doesn't throw Exception
From:
KOSAKI Motohiro <kosaki.motohiro@...>
Date:
2012-07-03 02:30:01 UTC
List:
ruby-dev #45900
2012/7/2 Yusuke Endoh <mame@tsg.ne.jp>: > 遠藤です。 > > 2012/06/26 SASADA Koichi <ko1@atdot.net>: >> (2012/06/26 4:51), KOSAKI Motohiro wrote: >>> 例外だと握りつぶせますけど、そこで kill >>> したつもりのスレッドが生き残ってしまって誰が嬉しいんだっけという話だと思います。個人的には例外にしてしまうとたぶん壊れるコードが出てくるので変えたくないなあ。 >>> >> そうですよね.1.8 もそうだし,ここは変えないということで. > > > その特殊な Object の意図はおそらく「握りつぶされたくない」だと > 思うのですが、しかし実際には ensure を使えば握りつぶせます。 > > > th = Thread.new do > begin > begin > sleep 1 > ensure > p $! > raise > end > rescue > retry > end > end > sleep 0.5 > th.kill > > $ ruby t.rb > nil > nil > nil > ... (繰り返す、^C で止められない) > > > かといって、この挙動を変えるべきではないと思います。 > ensure が実行されないとリソースのリークやデータの欠損が発生 > しかねないと思うので。 素晴らしい洞察ですね。しかしこの挙動は実装をしらないと絶対想像つかないはずで、 Thread.kill のケースで retryが動いてしまっているのはバグではないでしょうか # これを許すぐらいならThreadKilledException に賛成したくなる