From 724de18989353b277b175e56ef69b78ec339510a Mon Sep 17 00:00:00 2001 From: seki Date: Mon, 26 Nov 2007 14:24:29 +0000 Subject: * lib/drb/extserv.rb (initialize, stop_service): synchronize with ExtServManager. * test/drb/test_drb.rb (TestDRbEval): ignored. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/drb/extserv.rb | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/drb/extserv.rb b/lib/drb/extserv.rb index 7da8130c2b..af52250518 100644 --- a/lib/drb/extserv.rb +++ b/lib/drb/extserv.rb @@ -4,16 +4,21 @@ =end require 'drb/drb' +require 'monitor' module DRb class ExtServ + include MonitorMixin include DRbUndumped def initialize(there, name, server=nil) + super() @server = server || DRb::primary_server @name = name ro = DRbObject.new(nil, there) - @invoker = ro.regist(name, DRbObject.new(self, @server.uri)) + synchronize do + @invoker = ro.regist(name, DRbObject.new(self, @server.uri)) + end end attr_reader :server @@ -22,11 +27,13 @@ module DRb end def stop_service - @invoker.unregist(@name) - server = @server - @server = nil - server.stop_service - true + synchronize do + @invoker.unregist(@name) + server = @server + @server = nil + server.stop_service + true + end end def alive? -- cgit v1.2.3