Class: DRb::ExtServManager

Class | DRb::ExtServManager
In: | drb/extservm.rb
Parent: | Object

### Methods

command command= new regist service unregist

### Included Modules

DRbUndumped

### Attributes

uri | [RW] |

### Public Class methods

command()

[Source]

    # File drb/extservm.rb, line 15
        def self.command
          @@command
        end

command=(cmd)

[Source]

    # File drb/extservm.rb, line 19
        def self.command=(cmd)
          @@command = cmd
        end

new()

[Source]

    # File drb/extservm.rb, line 23
        def initialize
          @servers = {}
          @waiting = []
          @queue = Queue.new
          @thread = invoke_thread
          @uri = nil
        end

### Public Instance methods

regist(name, ro)

[Source]

    # 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

service(name)

[Source]

    # 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

unregist(name)

[Source]

    # File drb/extservm.rb, line 59
        def unregist(name)
          Thread.exclusive do
            @servers.delete(name)
          end
        end

[Validate]