SILENT KILLERPanel

Current Path: > > opt > alt > > ruby32 > share > ruby > drb


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt//ruby32/share/ruby/drb

NameTypeSizeLast ModifiedActions
acl.rb File 4721 bytes April 24 2025 07:53:46.
drb.rb File 58995 bytes April 24 2025 07:53:46.
eq.rb File 275 bytes April 24 2025 07:53:46.
extserv.rb File 840 bytes April 24 2025 07:53:46.
extservm.rb File 1847 bytes April 24 2025 07:53:46.
gw.rb File 3077 bytes April 24 2025 07:53:46.
invokemethod.rb File 777 bytes April 24 2025 07:53:46.
observer.rb File 671 bytes April 24 2025 07:53:46.
ssl.rb File 11794 bytes April 24 2025 07:53:46.
timeridconv.rb File 2213 bytes April 24 2025 07:53:46.
unix.rb File 2843 bytes April 24 2025 07:53:46.
version.rb File 35 bytes April 24 2025 07:53:46.
weakidconv.rb File 1149 bytes April 24 2025 07:53:46.

Reading File: //opt/alt//ruby32/share/ruby/drb/weakidconv.rb

# frozen_string_literal: false
require_relative 'drb'
require 'monitor'

module DRb

  # To use WeakIdConv:
  #
  #  DRb.start_service(nil, nil, {:idconv => DRb::WeakIdConv.new})

  class WeakIdConv < DRbIdConv
    class WeakSet
      include MonitorMixin
      def initialize
        super()
        @immutable = {}
        @map = ObjectSpace::WeakMap.new
      end

      def add(obj)
        synchronize do
          begin
            @map[obj] = self
          rescue ArgumentError
            @immutable[obj.__id__] = obj
          end
          return obj.__id__
        end
      end

      def fetch(ref)
        synchronize do
          @immutable.fetch(ref) {
            @map.each { |key, _|
              return key if key.__id__ == ref
            }
            raise RangeError.new("invalid reference")
          }
        end
      end
    end

    def initialize()
      super()
      @weak_set = WeakSet.new
    end

    def to_obj(ref) # :nodoc:
      return super if ref.nil?
      @weak_set.fetch(ref)
    end

    def to_id(obj) # :nodoc:
      return @weak_set.add(obj)
    end
  end
end

# DRb.install_id_conv(WeakIdConv.new)

SILENT KILLER Tool