summaryrefslogtreecommitdiff
path: root/lib/drb/extserv.rb
diff options
context:
space:
mode:
authorseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-26 14:24:29 +0000
committerseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-26 14:24:29 +0000
commit724de18989353b277b175e56ef69b78ec339510a (patch)
treed7334a5c5b26e5ec9879efb679a163704b3b6d86 /lib/drb/extserv.rb
parentbfc502fe517dee050085df406c72f61593a9d2fa (diff)
* 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
Diffstat (limited to 'lib/drb/extserv.rb')
-rw-r--r--lib/drb/extserv.rb19
1 files changed, 13 insertions, 6 deletions
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?