mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Updated rdoc to fix timeout.rb and include rinda directory. By Eric Hodel
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1eee80577f
commit
9372265026
3 changed files with 38 additions and 17 deletions
|
@ -1,7 +1,24 @@
|
|||
#--
|
||||
# = timeout.rb
|
||||
#
|
||||
# execution timeout
|
||||
#
|
||||
# = Copyright
|
||||
#
|
||||
# Copyright:: (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||
# Copyright:: (C) 2000 Information-technology Promotion Agency, Japan
|
||||
#
|
||||
#++
|
||||
#
|
||||
# = 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'
|
||||
|
@ -9,31 +26,24 @@
|
|||
# # Something that should be interrupted if it takes too much time...
|
||||
# }
|
||||
#
|
||||
# = Description
|
||||
#
|
||||
# A way of performing a potentially long-running operation in a thread, and terminating
|
||||
# it's execution if it hasn't finished by a fixed amount of time.
|
||||
#
|
||||
# Previous versions of timeout didn't provide use a module for namespace. This version
|
||||
# provides both Timeout.timeout, and a backwards-compatible #timeout.
|
||||
#
|
||||
# = Copyright
|
||||
#
|
||||
# Copyright:: (C) 2000 Network Applied Communication Laboratory, Inc.
|
||||
# Copyright:: (C) 2000 Information-technology Promotion Agency, Japan
|
||||
|
||||
module Timeout
|
||||
|
||||
##
|
||||
# Raised by Timeout#timeout when the block times out.
|
||||
|
||||
class Error<Interrupt
|
||||
end
|
||||
|
||||
##
|
||||
# Executes the method's block. If the block execution terminates before +sec+
|
||||
# seconds has passed, it returns true. If not, it terminates the execution
|
||||
# and raises +exception+ (which defaults to Timeout::Error).
|
||||
#
|
||||
# Note that this is both a method of module Timeout, so you can 'include Timeout'
|
||||
# into your classes so they have a #timeout method, as well as a module method,
|
||||
# so you can call it directly as Timeout.timeout().
|
||||
# Note that this is both a method of module Timeout, so you can 'include
|
||||
# Timeout' 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, exception=Error)
|
||||
return yield if sec == nil or sec.zero?
|
||||
raise ThreadError, "timeout within critical session" if Thread.critical
|
||||
|
@ -51,21 +61,26 @@ module Timeout
|
|||
end
|
||||
|
||||
module_function :timeout
|
||||
|
||||
end
|
||||
|
||||
##
|
||||
# Identical to:
|
||||
#
|
||||
# Timeout::timeout(n, e, &block).
|
||||
#
|
||||
# Defined for backwards compatibility with earlier versions of timeout.rb, see
|
||||
# Timeout#timeout.
|
||||
def timeout(n, e=Timeout::Error, &block)
|
||||
|
||||
def timeout(n, e=Timeout::Error, &block) # :nodoc:
|
||||
Timeout::timeout(n, e, &block)
|
||||
end
|
||||
|
||||
##
|
||||
# Another name for Timeout::Error, defined for backwards compatibility with
|
||||
# earlier versions of timeout.rb.
|
||||
TimeoutError = Timeout::Error
|
||||
|
||||
TimeoutError = Timeout::Error # :nodoc:
|
||||
|
||||
if __FILE__ == $0
|
||||
p timeout(5) {
|
||||
|
@ -87,3 +102,4 @@ if __FILE__ == $0
|
|||
}
|
||||
}
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue