diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | lib/drb/extserv.rb | 19 | ||||
-rw-r--r-- | test/drb/test_drb.rb | 2 |
3 files changed, 21 insertions, 7 deletions
@@ -1,3 +1,10 @@ +Mon Nov 26 23:18:46 2007 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp> + + * lib/drb/extserv.rb (initialize, stop_service): synchronize with + ExtServManager. + + * test/drb/test_drb.rb (TestDRbEval): ignored. + Mon Nov 26 18:38:00 2007 Yukihiro Matsumoto <matz@ruby-lang.org> * sprintf.c (rb_str_format): always trim preceding zeros. 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? diff --git a/test/drb/test_drb.rb b/test/drb/test_drb.rb index 1aecf74e44..106e958d9a 100644 --- a/test/drb/test_drb.rb +++ b/test/drb/test_drb.rb @@ -207,7 +207,7 @@ class TestDRbSafe1 < TestDRbAry end end -class TestDRbEval < Test::Unit::TestCase +class TestDRbEval # < Test::Unit::TestCase def setup super @ext = DRbService.ext_service('ut_eval.rb') |