# DRb::ExtServManager (Class)

In: | drb/extservm.rb
Parent: | Object

## Methods

command command= new regist service unregist

## Attributes

server | [R] |

## Included Modules

DRbUndumped

## 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
        end

## Public Instance methods

service(name)

[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

regist(name, ro)

[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

unregist(name)

[Source]

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

[Validate]