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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 akr
						akr