aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--lib/drb/extserv.rb19
-rw-r--r--test/drb/test_drb.rb2
3 files changed, 21 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 3453677c01..272d38baae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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')