DRb::ExtServManager (Class)

In: drb/extservm.rb
Parent: Object

Methods

command   command=   new   regist   service   unregist  

Attributes

server  [R] 

Included Modules

Public Class methods

[Source]

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

[Source]

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

[Source]

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

Public Instance methods

[Source]

# 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

[Source]

# 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

[Source]

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

[Validate]