Class | DRb::ExtServManager |
In: |
drb/extservm.rb
|
Parent: | Object |
uri | [RW] |
# File drb/extservm.rb, line 23 def initialize @servers = {} @waiting = [] @queue = Queue.new @thread = invoke_thread @uri = nil end
# File drb/extservm.rb, line 43 def regist(name, ro) ary = nil Thread.exclusive do @servers[name] = ro ary = @waiting @waiting = [] end ary.each do |th| begin th.run rescue ThreadError end end self end
# File drb/extservm.rb, line 32 def service(name) while true server = nil Thread.exclusive do server = @servers[name] if @servers[name] end return server if server && server.alive? invoke_service(name) end end