module HTTPClient::Timeout

Public Instance Methods

timeout(sec, ex = nil) { || ... } click to toggle source
# File lib/httpclient/timeout.rb, line 125
def timeout(sec, ex = nil, &block)
  return yield if sec == nil or sec.zero?
  scheduler = nil
  begin
    scheduler = HTTPClient.timeout_scheduler
    period = scheduler.register(Thread.current, sec, ex)
    yield(sec)
  ensure
    scheduler.cancel(period) if scheduler and period
  end
end