| Class | DRb::ExtServManager |
| In: |
drb/extservm.rb
|
| Parent: | Object |
Included Modules
Attributes
| uri | [RW] |
Public Class methods
# File drb/extservm.rb, line 23
23: def initialize
24: @servers = {}
25: @waiting = []
26: @queue = Queue.new
27: @thread = invoke_thread
28: @uri = nil
29: end
Public Instance methods
# File drb/extservm.rb, line 43
43: def regist(name, ro)
44: ary = nil
45: Thread.exclusive do
46: @servers[name] = ro
47: ary = @waiting
48: @waiting = []
49: end
50: ary.each do |th|
51: begin
52: th.run
53: rescue ThreadError
54: end
55: end
56: self
57: end
# File drb/extservm.rb, line 32
32: def service(name)
33: while true
34: server = nil
35: Thread.exclusive do
36: server = @servers[name] if @servers[name]
37: end
38: return server if server && server.alive?
39: invoke_service(name)
40: end
41: end