module
Description
A way of performing a potentially long-running operation in a thread, and terminating it’s execution if it hasn’t finished within fixed amount of time.
Previous versions of timeout didn’t use a module for namespace. This version provides both Timeout.timeout, and a backwards-compatible #timeout.
Synopsis
require 'timeout' status = Timeout::timeout(5) { # Something that should be interrupted if it takes too much time... }
Constants
THIS_FILE = /\A#{Regexp.quote(__FILE__)}:/o
CALLER_OFFSET = ((c = caller[0]) && THIS_FILE =~ c) ? 1 : 0