ruby-changes:23663
From: naruse <ko1@a...>
Date: Sat, 19 May 2012 14:41:37 +0900 (JST)
Subject: [ruby-changes:23663] naruse:r35714 (ruby_1_9_3): merge revision(s) 35424:
naruse 2012-05-19 14:41:23 +0900 (Sat, 19 May 2012) New Revision: 35714 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35714 Log: merge revision(s) 35424: * lib/drb/extservm.rb (DRb::ExtServManager): don't use /bin/sh to invoke service subprocess. mark detach threads for clean up. * test/drb/drbtest.rb: clean up the service subprocess in teardown. * test/drb/test_drb.rb: set @service_name for teardown. * test/drb/test_drbunix.rb: ditto. * test/drb/test_drbssl.rb: ditto. Modified files: branches/ruby_1_9_3/ChangeLog branches/ruby_1_9_3/lib/drb/extservm.rb branches/ruby_1_9_3/test/drb/drbtest.rb branches/ruby_1_9_3/test/drb/test_drb.rb branches/ruby_1_9_3/test/drb/test_drbssl.rb branches/ruby_1_9_3/test/drb/test_drbunix.rb branches/ruby_1_9_3/version.h Index: ruby_1_9_3/ChangeLog =================================================================== --- ruby_1_9_3/ChangeLog (revision 35713) +++ ruby_1_9_3/ChangeLog (revision 35714) @@ -1,3 +1,16 @@ +Sat May 19 14:41:09 2012 Tanaka Akira <akr@f...> + + * lib/drb/extservm.rb (DRb::ExtServManager): don't use /bin/sh to + invoke service subprocess. mark detach threads for clean up. + + * test/drb/drbtest.rb: clean up the service subprocess in teardown. + + * test/drb/test_drb.rb: set @service_name for teardown. + + * test/drb/test_drbunix.rb: ditto. + + * test/drb/test_drbssl.rb: ditto. + Sat May 19 14:40:49 2012 Tanaka Akira <akr@f...> * lib/drb/ssl.rb: close accepted TCP socket if SSL accept is failed. Index: ruby_1_9_3/lib/drb/extservm.rb =================================================================== --- ruby_1_9_3/lib/drb/extservm.rb (revision 35713) +++ ruby_1_9_3/lib/drb/extservm.rb (revision 35714) @@ -79,7 +79,15 @@ @servers[name] = false end uri = @uri || DRb.uri - Process.detach spawn("#{command} #{uri} #{name}") + if command.respond_to? :to_ary + command = command.to_ary + [uri, name] + pid = spawn(*command) + else + pid = spawn("#{command} #{uri} #{name}") + end + th = Process.detach(pid) + th[:drb_service] = name + th end end end Index: ruby_1_9_3/version.h =================================================================== --- ruby_1_9_3/version.h (revision 35713) +++ ruby_1_9_3/version.h (revision 35714) @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.3" -#define RUBY_PATCHLEVEL 219 +#define RUBY_PATCHLEVEL 220 #define RUBY_RELEASE_DATE "2012-05-19" #define RUBY_RELEASE_YEAR 2012 Index: ruby_1_9_3/test/drb/test_drbssl.rb =================================================================== --- ruby_1_9_3/test/drb/test_drbssl.rb (revision 35713) +++ ruby_1_9_3/test/drb/test_drbssl.rb (revision 35714) @@ -36,7 +36,8 @@ class TestDRbSSLCore < Test::Unit::TestCase include DRbCore def setup - @ext = DRbSSLService.ext_service('ut_drb_drbssl.rb') + @service_name = 'ut_drb_drbssl.rb' + @ext = DRbSSLService.ext_service(@service_name) @there = @ext.front end @@ -53,7 +54,8 @@ class TestDRbSSLAry < Test::Unit::TestCase include DRbAry def setup - @ext = DRbSSLService.ext_service('ut_array_drbssl.rb') + @service_name = 'ut_array_drbssl.rb' + @ext = DRbSSLService.ext_service(@service_name) @there = @ext.front end end Index: ruby_1_9_3/test/drb/test_drb.rb =================================================================== --- ruby_1_9_3/test/drb/test_drb.rb (revision 35713) +++ ruby_1_9_3/test/drb/test_drb.rb (revision 35714) @@ -202,7 +202,8 @@ class TestDRbSafe1 < TestDRbAry def setup - @ext = DRbService.ext_service('ut_safe1.rb') + @service_name = 'ut_safe1.rb' + @ext = DRbService.ext_service(@service_name) @there = @ext.front end end Index: ruby_1_9_3/test/drb/drbtest.rb =================================================================== --- ruby_1_9_3/test/drb/drbtest.rb (revision 35713) +++ ruby_1_9_3/test/drb/drbtest.rb (revision 35714) @@ -11,7 +11,7 @@ @@ruby += " -d" if $DEBUG def self.add_service_command(nm) dir = File.dirname(File.expand_path(__FILE__)) - DRb::ExtServManager.command[nm] = "#{@@ruby} \"#{dir}/#{nm}\"" + DRb::ExtServManager.command[nm] = [@@ruby, "#{dir}/#{nm}"] end %w(ut_drb.rb ut_array.rb ut_port.rb ut_large.rb ut_safe1.rb ut_eval.rb ut_eq.rb).each do |nm| @@ -65,12 +65,20 @@ module DRbCore def setup - @ext = DRbService.ext_service('ut_drb.rb') + @service_name = 'ut_drb.rb' + @ext = DRbService.ext_service(@service_name) @there = @ext.front end def teardown - @ext.stop_service if @ext + @ext.stop_service if defined?(@ext) && @ext + DRbService.manager.unregist(@service_name) + Thread.list.each {|th| + if th.respond_to?(:pid) && th[:drb_service] == @service_name + Process.kill :TERM, th.pid + th.join + end + } end def test_00_DRbObject @@ -271,12 +279,20 @@ module DRbAry def setup - @ext = DRbService.ext_service('ut_array.rb') + @service_name = 'ut_array.rb' + @ext = DRbService.ext_service(@service_name) @there = @ext.front end def teardown - @ext.stop_service if @ext + @ext.stop_service if defined?(@ext) && @ext + DRbService.manager.unregist(@service_name) + Thread.list.each {|th| + if th.respond_to?(:pid) && th[:drb_service] == @service_name + Process.kill :TERM, th.pid + th.join + end + } end def test_01 Index: ruby_1_9_3/test/drb/test_drbunix.rb =================================================================== --- ruby_1_9_3/test/drb/test_drbunix.rb (revision 35713) +++ ruby_1_9_3/test/drb/test_drbunix.rb (revision 35714) @@ -20,7 +20,8 @@ class TestDRbUNIXCore < Test::Unit::TestCase include DRbCore def setup - @ext = DRbUNIXService.ext_service('ut_drb_drbunix.rb') + @service_name = 'ut_drb_drbunix.rb' + @ext = DRbUNIXService.ext_service(@service_name) @there = @ext.front end @@ -37,7 +38,8 @@ class TestDRbUNIXAry < Test::Unit::TestCase include DRbAry def setup - @ext = DRbUNIXService.ext_service('ut_array_drbunix.rb') + @service_name = 'ut_array_drbunix.rb' + @ext = DRbUNIXService.ext_service(@service_name) @there = @ext.front end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/