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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@35714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2012-05-19 05:41:23 +00:00
parent 336c45eaa2
commit 28db23778c
7 changed files with 54 additions and 12 deletions

View file

@ -1,3 +1,16 @@
Sat May 19 14:41:09 2012 Tanaka Akira <akr@fsij.org>
* 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@fsij.org>
* lib/drb/ssl.rb: close accepted TCP socket if SSL accept is failed.

View file

@ -79,7 +79,15 @@ module DRb
@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

View file

@ -11,7 +11,7 @@ class DRbService
@@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 @@ end
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 @@ end
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

View file

@ -202,7 +202,8 @@ end
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

View file

@ -36,7 +36,8 @@ end
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 @@ end
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

View file

@ -20,7 +20,8 @@ end
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 @@ end
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

View file

@ -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