GRAYBYTE WORDPRESS FILE MANAGER2785

Server IP : 198.54.121.189 / Your IP : 216.73.216.112
System : Linux premium69.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
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/ruby19/lib64/ruby/1.9.1/drb/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby19/lib64/ruby/1.9.1/drb//timeridconv.rb
require 'drb/drb'
require 'monitor'

module DRb
  class TimerIdConv < DRbIdConv
    class TimerHolder2
      include MonitorMixin

      class InvalidIndexError < RuntimeError; end

      def initialize(timeout=600)
        super()
        @sentinel = Object.new
        @gc = {}
        @curr = {}
        @renew = {}
        @timeout = timeout
        @keeper = keeper
      end

      def add(obj)
        synchronize do
          key = obj.__id__
          @curr[key] = obj
          return key
        end
      end

      def fetch(key, dv=@sentinel)
        synchronize do
          obj = peek(key)
          if obj == @sentinel
            return dv unless dv == @sentinel
            raise InvalidIndexError
          end
          @renew[key] = obj # KeepIt
          return obj
        end
      end

      def include?(key)
        synchronize do
          obj = peek(key)
          return false if obj == @sentinel
          true
        end
      end

      def peek(key)
        synchronize do
          return @curr.fetch(key, @renew.fetch(key, @gc.fetch(key, @sentinel)))
        end
      end

      private
      def alternate
        synchronize do
          @gc = @curr       # GCed
          @curr = @renew
          @renew = {}
        end
      end

      def keeper
        Thread.new do
          loop do
            alternate
            sleep(@timeout)
          end
        end
      end
    end

    def initialize(timeout=600)
      @holder = TimerHolder2.new(timeout)
    end

    def to_obj(ref)
      return super if ref.nil?
      @holder.fetch(ref)
    rescue TimerHolder2::InvalidIndexError
      raise "invalid reference"
    end

    def to_id(obj)
      return @holder.add(obj)
    end
  end
end

# DRb.install_id_conv(TimerIdConv.new)

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:50:37
root / root
0755
acl.rb
4.65 KB
May 19 2011 00:07:25
root / linksafe
0644
drb.rb
53.091 KB
June 29 2011 21:33:36
root / linksafe
0644
eq.rb
0.229 KB
January 26 2010 11:22:20
root / linksafe
0644
extserv.rb
1.188 KB
May 19 2011 00:07:25
root / linksafe
0644
extservm.rb
1.71 KB
May 19 2012 05:41:23
root / linksafe
0644
gw.rb
1.88 KB
October 02 2009 10:45:39
root / linksafe
0644
invokemethod.rb
0.715 KB
May 18 2011 21:19:18
root / linksafe
0644
observer.rb
0.462 KB
October 02 2009 10:45:39
root / linksafe
0644
ssl.rb
5.461 KB
January 30 2014 12:04:22
root / linksafe
0644
timeridconv.rb
1.734 KB
May 18 2011 21:19:18
root / linksafe
0644
unix.rb
2.547 KB
May 19 2012 05:40:29
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF