[#15359] Timeout::Error — Jeremy Thurgood <jerith@...>

Good day,

41 messages 2008/02/05
[#15366] Re: Timeout::Error — Eric Hodel <drbrain@...7.net> 2008/02/06

On Feb 5, 2008, at 06:20 AM, Jeremy Thurgood wrote:

[#15370] Re: Timeout::Error — Jeremy Thurgood <jerith@...> 2008/02/06

Eric Hodel wrote:

[#15373] Re: Timeout::Error — Nobuyoshi Nakada <nobu@...> 2008/02/06

Hi,

[#15374] Re: Timeout::Error — Jeremy Thurgood <jerith@...> 2008/02/06

Nobuyoshi Nakada wrote:

[#15412] Re: Timeout::Error — Nobuyoshi Nakada <nobu@...> 2008/02/07

Hi,

[#15413] Re: Timeout::Error — Jeremy Thurgood <jerith@...> 2008/02/07

Nobuyoshi Nakada wrote:

[#15414] Re: Timeout::Error — Nobuyoshi Nakada <nobu@...> 2008/02/07

Hi,

[#15360] reopen: can't change access mode from "w+" to "w"? — Sam Ruby <rubys@...>

I ran 'rake test' on test/spec [1], using

16 messages 2008/02/05
[#15369] Re: reopen: can't change access mode from "w+" to "w"? — Nobuyoshi Nakada <nobu@...> 2008/02/06

Hi,

[#15389] STDIN encoding differs from default source file encoding — Dave Thomas <dave@...>

This seems strange:

21 messages 2008/02/06
[#15392] Re: STDIN encoding differs from default source file encoding — Yukihiro Matsumoto <matz@...> 2008/02/06

Hi,

[#15481] very bad character performance on ruby1.9 — "Eric Mahurin" <eric.mahurin@...>

I'd like to bring up the issue of how characters are represented in

16 messages 2008/02/10

[#15528] Test::Unit maintainer — Kouhei Sutou <kou@...>

Hi Nathaniel, Ryan,

22 messages 2008/02/13

[#15551] Proc#curry — ts <decoux@...>

21 messages 2008/02/14
[#15557] Re: [1.9] Proc#curry — David Flanagan <david@...> 2008/02/15

ts wrote:

[#15558] Re: [1.9] Proc#curry — Yukihiro Matsumoto <matz@...> 2008/02/15

Hi,

[#15560] Re: Proc#curry — Trans <transfire@...> 2008/02/15

[#15585] Ruby M17N meeting summary — Martin Duerst <duerst@...>

This is a rough translation of the Japanese meeting summary

19 messages 2008/02/18

[#15596] possible bug in regexp lexing — Ryan Davis <ryand-ruby@...>

current:

17 messages 2008/02/19

[#15678] Re: [ANN] MacRuby — "Rick DeNatale" <rick.denatale@...>

On 2/27/08, Laurent Sansonetti <laurent.sansonetti@gmail.com> wrote:

18 messages 2008/02/28
[#15679] Re: [ANN] MacRuby — "Laurent Sansonetti" <laurent.sansonetti@...> 2008/02/28

On Thu, Feb 28, 2008 at 6:33 AM, Rick DeNatale <rick.denatale@gmail.com> wrote:

[#15680] Re: [ANN] MacRuby — Yukihiro Matsumoto <matz@...> 2008/02/28

Hi,

[#15683] Re: [ANN] MacRuby — "Laurent Sansonetti" <laurent.sansonetti@...> 2008/02/28

On Thu, Feb 28, 2008 at 1:51 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

Re: Timeout::Error

From: Jeremy Thurgood <jerith@...>
Date: 2008-02-07 08:28:05 UTC
List: ruby-core #15413
Nobuyoshi Nakada wrote:
> Hi,
> 
> At Wed, 6 Feb 2008 18:05:45 +0900,
> Jeremy Thurgood wrote in [ruby-core:15374]:
>> What was the change? I currently lack the time and resources to go 
>> digging through commit logs for it.
> 
> TimeoutError was a subclass of StandardError till 1.6, but now
> it inherits Interrupt which is not a subclass of StandardError.

Any idea why this changed?

>> Thanks for the patch. It only fixes the symptom, however, not the 
>> problem. I still have to explicitly handle timeouts in (for example) 
>> HTTP requests instead of simply noting a general failure (in a bare 
>> "rescue" clause), logging the exception and retrying a couple of times 
>> before giving up and moving on to something else. For most of my use 
>> cases, this is exactly how I would handle HTTP requests in long-running 
>> services that require me to keep state.
> 
> I'm just curious, do you run long-running services in irb?

No, I first noticed this in irb. I write long-running services in Ruby 
that may unknowingly invoke timeout() deep within libraries and thus 
crash. Try the following piece of code, imagining that the timeout block 
actually does something with a possibly slow network:

#!/usr/bin/env ruby

require 'timeout'

while true
   begin
     randnum = (rand*10).to_i
     Timeout::timeout(6) do
       puts "Doing something for #{randnum} seconds..."
       sleep(randnum)
     end
     puts "I did something without timing out!"
   rescue
     puts "Oops, something went wrong. I'll try again."
   end
end


--J

-- 

Attachments (1)

smime.p7s (3.26 KB, application/x-pkcs7-signature)

In This Thread