diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-04-22 11:35:03 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-04-22 11:35:03 +0000 |
commit | e16e961bab2c4f8ae66c2b19f638c63a48f19ae4 (patch) | |
tree | d3f2b1afeb53f0d343020002b8de9da20c561d0f /lib | |
parent | f46ffca1c766cdb20dabb27e9bbe60a124e28bcd (diff) |
* 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
Diffstat (limited to 'lib')
-rw-r--r-- | lib/drb/extservm.rb | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/drb/extservm.rb b/lib/drb/extservm.rb index 216fe8dcee..8a7fc316af 100644 --- a/lib/drb/extservm.rb +++ b/lib/drb/extservm.rb @@ -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 |