$16 GRAYBYTE WORDPRESS FILE MANAGER $17

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/opt/cpanel/ea-ruby27/root/usr/share/ruby/ruby-2.7.8/drb/

HOME
Current File : /opt/cpanel/ea-ruby27/root/usr/share/ruby/ruby-2.7.8/drb//extservm.rb
# frozen_string_literal: false
=begin
 external service manager
        Copyright (c) 2000 Masatoshi SEKI
=end

require_relative 'drb'
require 'monitor'

module DRb
  class ExtServManager
    include DRbUndumped
    include MonitorMixin

    @@command = {}

    def self.command
      @@command
    end

    def self.command=(cmd)
      @@command = cmd
    end

    def initialize
      super()
      @cond = new_cond
      @servers = {}
      @waiting = []
      @queue = Thread::Queue.new
      @thread = invoke_thread
      @uri = nil
    end
    attr_accessor :uri

    def service(name)
      synchronize do
        while true
          server = @servers[name]
          return server if server && server.alive? # server may be `false'
          invoke_service(name)
          @cond.wait
        end
      end
    end

    def regist(name, ro)
      synchronize do
        @servers[name] = ro
        @cond.signal
      end
      self
    end

    def unregist(name)
      synchronize do
        @servers.delete(name)
      end
    end

    private
    def invoke_thread
      Thread.new do
        while name = @queue.pop
          invoke_service_command(name, @@command[name])
        end
      end
    end

    def invoke_service(name)
      @queue.push(name)
    end

    def invoke_service_command(name, command)
      raise "invalid command. name: #{name}" unless command
      synchronize do
        return if @servers.include?(name)
        @servers[name] = false
      end
      uri = @uri || DRb.uri
      if command.respond_to? :to_ary
        command = command.to_ary + [uri, name]
        pid = spawn(*command)
      else
        pid = spawn("#{command} #{uri} #{name}")
      end
      th = Process.detach(pid)
      th[:drb_service] = name
      th
    end
  end
end


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
21 Mar 2024 10.21 AM
root / root
0755
acl.rb
4.61 KB
30 Mar 2023 12.34 PM
root / root
0644
drb.rb
57.641 KB
30 Mar 2023 12.34 PM
root / root
0644
eq.rb
0.269 KB
30 Mar 2023 12.34 PM
root / root
0644
extserv.rb
0.816 KB
30 Mar 2023 12.34 PM
root / root
0644
extservm.rb
1.745 KB
30 Mar 2023 12.34 PM
root / root
0644
gw.rb
3.005 KB
30 Mar 2023 12.34 PM
root / root
0644
invokemethod.rb
0.759 KB
30 Mar 2023 12.34 PM
root / root
0644
observer.rb
0.651 KB
30 Mar 2023 12.34 PM
root / root
0644
ssl.rb
11.536 KB
30 Mar 2023 12.34 PM
root / root
0644
timeridconv.rb
2.161 KB
30 Mar 2023 12.34 PM
root / root
0644
unix.rb
2.776 KB
30 Mar 2023 12.34 PM
root / root
0644
weakidconv.rb
1.122 KB
30 Mar 2023 12.34 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF