Skip to content
Timeout provides a way to auto-terminate a potentially long-running operation if it hasn't finished in a fixed amount of time.
Ruby Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin cleanup Oct 3, 2019
lib bundle gem timeout Aug 6, 2019
test Use test library of Ruby core repository. Oct 2, 2019
.gitignore
.travis.yml bundle gem timeout Aug 6, 2019
Gemfile
LICENSE.txt Added LICENSE file. Oct 3, 2019
README.md README Oct 3, 2019
Rakefile Use test library of Ruby core repository. Oct 2, 2019
timeout.gemspec Update gemspec Nov 8, 2019

README.md

Timeout

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.

Installation

Add this line to your application's Gemfile:

gem 'timeout'

And then execute:

$ bundle

Or install it yourself as:

$ gem install timeout

Usage

require 'timeout'
status = Timeout::timeout(5) {
  # Something that should be interrupted if it takes more than 5 seconds...
}

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/ruby/timeout.

You can’t perform that action at this time.