In: |
drb/extservm.rb
|
Parent: | Object |
# File drb/extservm.rb, line 23 def initialize @servers = {} @waiting = [] @queue = Queue.new @thread = invoke_thread end
# File drb/extservm.rb, line 42 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 31 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