mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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/trunk@35424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
f46ffca1c7
commit
e16e961bab
6 changed files with 53 additions and 11 deletions
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
Sun Apr 22 20:26:06 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.
|
||||
|
||||
Sun Apr 22 07:51:29 2012 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* lib/drb/ssl.rb: close accepted TCP socket if SSL accept is failed.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue