ハンドラオブジェクトを生成してを介して待機する前に、DRbサービスを起動するスクリプトがありますDRb.thread.join
。明示的に強制終了されるまでスクリプトを実行したいので、追加しました
trap "INT" do
DRb.stop_service
end
これはDRbサービスを正常に停止し、Ruby 1.8で終了しますが、1.9未満ではデッドロックしているようです(OS X 10.6.7)。プロセスをサンプリングすると、いくつかのスレッドがで回転していることがわかりsemaphore_wait_signal_trap
ます。
私は私が呼んstop_service
でいる方法で何か間違ったことをしていると思いますが、私は何をしているのかわかりません。誰かが私にそれを正しく行う方法についての指針を教えてもらえますか?