SILENT KILLERPanel

Current Path: > > opt > alt > > ruby31 > share > ruby


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//ruby31/share/ruby

NameTypeSizeLast ModifiedActions
benchmark Directory - -
bigdecimal Directory - -
cgi Directory - -
csv Directory - -
did_you_mean Directory - -
digest Directory - -
drb Directory - -
erb Directory - -
error_highlight Directory - -
fiddle Directory - -
forwardable Directory - -
io Directory - -
json Directory - -
logger Directory - -
net Directory - -
objspace Directory - -
open3 Directory - -
openssl Directory - -
optparse Directory - -
psych Directory - -
racc Directory - -
random Directory - -
reline Directory - -
rinda Directory - -
ripper Directory - -
set Directory - -
syslog Directory - -
unicode_normalize Directory - -
uri Directory - -
vendor_ruby Directory - -
yaml Directory - -
English.rb File 6258 bytes April 28 2025 17:36:08.
abbrev.rb File 3529 bytes April 28 2025 17:36:08.
base64.rb File 3435 bytes April 28 2025 17:36:07.
benchmark.rb File 18842 bytes April 28 2025 17:36:08.
bigdecimal.rb File 24 bytes April 28 2025 17:36:08.
cgi.rb File 10070 bytes April 28 2025 17:36:08.
coverage.rb File 368 bytes April 28 2025 17:36:08.
csv.rb File 94629 bytes April 28 2025 17:36:08.
date.rb File 1130 bytes April 28 2025 17:36:07.
delegate.rb File 11961 bytes April 28 2025 17:36:06.
did_you_mean.rb File 5440 bytes April 28 2025 17:36:06.
digest.rb File 3381 bytes April 28 2025 17:36:08.
drb.rb File 50 bytes April 28 2025 17:36:07.
erb.rb File 29425 bytes April 28 2025 17:36:07.
error_highlight.rb File 84 bytes April 28 2025 17:36:08.
expect.rb File 2217 bytes April 28 2025 17:36:06.
fiddle.rb File 2162 bytes April 28 2025 17:36:08.
fileutils.rb File 48886 bytes April 28 2025 17:36:06.
find.rb File 2556 bytes April 28 2025 17:36:08.
forwardable.rb File 9199 bytes April 28 2025 17:36:06.
getoptlong.rb File 15826 bytes April 28 2025 17:36:07.
ipaddr.rb File 21077 bytes April 28 2025 17:36:06.
json.rb File 19757 bytes April 28 2025 17:36:07.
kconv.rb File 5861 bytes April 28 2025 17:36:08.
logger.rb File 16935 bytes April 28 2025 17:36:08.
mkmf.rb File 90232 bytes April 28 2025 17:36:08.
monitor.rb File 6920 bytes April 28 2025 17:36:06.
mutex_m.rb File 2383 bytes April 28 2025 17:36:08.
objspace.rb File 2728 bytes April 28 2025 17:36:07.
observer.rb File 6532 bytes April 28 2025 17:36:08.
open-uri.rb File 25474 bytes April 28 2025 17:36:08.
open3.rb File 22640 bytes April 28 2025 17:36:07.
openssl.rb File 1052 bytes April 28 2025 17:36:07.
optionparser.rb File 59 bytes April 28 2025 17:36:08.
optparse.rb File 60227 bytes April 28 2025 17:36:06.
ostruct.rb File 14114 bytes April 28 2025 17:36:06.
pathname.rb File 16868 bytes April 28 2025 17:36:07.
pp.rb File 17094 bytes April 28 2025 17:36:07.
prettyprint.rb File 16281 bytes April 28 2025 17:36:07.
pstore.rb File 15084 bytes April 28 2025 17:36:08.
psych.rb File 25199 bytes April 28 2025 17:36:06.
racc.rb File 137 bytes April 28 2025 17:36:07.
readline.rb File 189 bytes April 28 2025 17:36:08.
reline.rb File 18093 bytes April 28 2025 17:36:07.
resolv-replace.rb File 1805 bytes April 28 2025 17:36:07.
resolv.rb File 75959 bytes April 28 2025 17:36:07.
ripper.rb File 2494 bytes April 28 2025 17:36:08.
securerandom.rb File 2112 bytes April 28 2025 17:36:06.
set.rb File 26038 bytes April 28 2025 17:36:08.
shellwords.rb File 7259 bytes April 28 2025 17:36:08.
singleton.rb File 4178 bytes April 28 2025 17:36:07.
socket.rb File 44702 bytes April 28 2025 17:36:07.
tempfile.rb File 12730 bytes April 28 2025 17:36:08.
time.rb File 24287 bytes April 28 2025 17:36:07.
timeout.rb File 4171 bytes April 28 2025 17:36:08.
tmpdir.rb File 4543 bytes April 28 2025 17:36:08.
tsort.rb File 14642 bytes April 28 2025 17:36:08.
un.rb File 11323 bytes April 28 2025 17:36:08.
uri.rb File 3131 bytes April 28 2025 17:36:07.
weakref.rb File 1493 bytes April 28 2025 17:36:07.
yaml.rb File 1841 bytes April 28 2025 17:36:07.

Reading File: //opt/alt//ruby31/share/ruby/timeout.rb

# frozen_string_literal: false
# Timeout long-running blocks
#
# == Synopsis
#
#   require 'timeout'
#   status = Timeout::timeout(5) {
#     # Something that should be interrupted if it takes more than 5 seconds...
#   }
#
# == Description
#
# Timeout provides a way to auto-terminate a potentially long-running
# operation if it hasn't finished in a fixed amount of time.
#
# Previous versions didn't use a module for namespacing, however
# #timeout is provided for backwards compatibility.  You
# should prefer Timeout.timeout instead.
#
# == Copyright
#
# Copyright:: (C) 2000  Network Applied Communication Laboratory, Inc.
# Copyright:: (C) 2000  Information-technology Promotion Agency, Japan

module Timeout
  VERSION = "0.2.0".freeze

  # Raised by Timeout.timeout when the block times out.
  class Error < RuntimeError
    attr_reader :thread

    def self.catch(*args)
      exc = new(*args)
      exc.instance_variable_set(:@thread, Thread.current)
      exc.instance_variable_set(:@catch_value, exc)
      ::Kernel.catch(exc) {yield exc}
    end

    def exception(*)
      # TODO: use Fiber.current to see if self can be thrown
      if self.thread == Thread.current
        bt = caller
        begin
          throw(@catch_value, bt)
        rescue UncaughtThrowError
        end
      end
      super
    end
  end

  # :stopdoc:
  THIS_FILE = /\A#{Regexp.quote(__FILE__)}:/o
  CALLER_OFFSET = ((c = caller[0]) && THIS_FILE =~ c) ? 1 : 0
  private_constant :THIS_FILE, :CALLER_OFFSET
  # :startdoc:

  # Perform an operation in a block, raising an error if it takes longer than
  # +sec+ seconds to complete.
  #
  # +sec+:: Number of seconds to wait for the block to terminate. Any number
  #         may be used, including Floats to specify fractional seconds. A
  #         value of 0 or +nil+ will execute the block without any timeout.
  # +klass+:: Exception Class to raise if the block fails to terminate
  #           in +sec+ seconds.  Omitting will use the default, Timeout::Error
  # +message+:: Error message to raise with Exception Class.
  #             Omitting will use the default, "execution expired"
  #
  # Returns the result of the block *if* the block completed before
  # +sec+ seconds, otherwise throws an exception, based on the value of +klass+.
  #
  # The exception thrown to terminate the given block cannot be rescued inside
  # the block unless +klass+ is given explicitly. However, the block can use
  # ensure to prevent the handling of the exception.  For that reason, this
  # method cannot be relied on to enforce timeouts for untrusted blocks.
  #
  # If a scheduler is defined, it will be used to handle the timeout by invoking
  # Scheduler#timeout_after.
  #
  # Note that this is both a method of module Timeout, so you can <tt>include
  # Timeout</tt> into your classes so they have a #timeout method, as well as
  # a module method, so you can call it directly as Timeout.timeout().
  def timeout(sec, klass = nil, message = nil, &block)   #:yield: +sec+
    return yield(sec) if sec == nil or sec.zero?

    message ||= "execution expired".freeze

    if Fiber.respond_to?(:current_scheduler) && (scheduler = Fiber.current_scheduler)&.respond_to?(:timeout_after)
      return scheduler.timeout_after(sec, klass || Error, message, &block)
    end

    from = "from #{caller_locations(1, 1)[0]}" if $DEBUG
    e = Error
    bl = proc do |exception|
      begin
        x = Thread.current
        y = Thread.start {
          Thread.current.name = from
          begin
            sleep sec
          rescue => e
            x.raise e
          else
            x.raise exception, message
          end
        }
        return yield(sec)
      ensure
        if y
          y.kill
          y.join # make sure y is dead.
        end
      end
    end
    if klass
      begin
        bl.call(klass)
      rescue klass => e
        message = e.message
        bt = e.backtrace
      end
    else
      bt = Error.catch(message, &bl)
    end
    level = -caller(CALLER_OFFSET).size-2
    while THIS_FILE =~ bt[level]
      bt.delete_at(level)
    end
    raise(e, message, bt)
  end

  module_function :timeout
end

SILENT KILLER Tool