From: Tomoyuki Chikanaga Date: 2011-06-24T13:53:29+09:00 Subject: [ruby-dev:43890] [Ruby 1.9 - Bug #4072] dRubyで作成したサーバプログラムがsleepしていてもexitしてしまう Issue #4072 has been updated by Tomoyuki Chikanaga. 何度もすみません。SIG_DFL じゃなくて SIG_IGN ですね。 あと引数なしの sleep の場合は sleep_forever() で眠りますが、こちらは deadlockable 引数が 0 だと while の条件部が抜けるようになっているのでそのため一度起床するとそのまま抜けてしまってたようです。 ---------------------------------------- Bug #4072: dRubyで作成したサーバプログラムがsleepしていてもexitしてしまう http://redmine.ruby-lang.org/issues/4072 Author: 三村 益隆 Status: Closed Priority: Normal Assignee: Category: core Target version: 1.9.2 ruby -v: ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0] =begin ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]にて、 dRubyを以下のようなserverとclient作成し、server->clientを実行すると、 serverプログラムが例外の表示もなくexitします。 ruby 1.9.3dev (2010-11-19 trunk 29830) [x86_64-darwin10.5.0]でも同様に発生します。 ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10.4.0]では、 exitされないことを確認しております。 https://gist.github.com/706260 * serverプログラム require 'drb' class Hello def hello(message) puts message end end begin DRb.start_service('druby://:12346', Hello.new) puts DRb.uri sleep rescue Object, SystemExit=> e p e.backtrace raise e rescue => e puts e end * clientプログラム require 'drb' d = DRbObject.new_with_uri('druby://m-mimura-4.local:12346') d.hello "message" =end -- http://redmine.ruby-lang.org