On Tue, Mar 31, 2009 at 6:41 PM, Iki Baz Castillo <ibc / aliax.net> wrote:
> El Martes 31 Marzo 2009, Sean O'Halpin escribi
>> Hi,
>>
>> Just thought I'd share this to save anyone else the bafflement it caused
>> me.
>>
>> In ruby 1.8.x and jruby, sleep(0) means do not sleep at all. In 1.9,
>> it appears to mean sleep forever.
>
> I've tested it in Ruby 1.9.1 and sleep(0) means do not sleep at all.

Hmmm.  Just tested on Ubuntu 8.04 and sleep(0) works as expected in
all versions (i.e. it doesn't wait). However, this is what I get on
Mac OS X 10.4:

$ multiruby -rtimeout -e 'Timeout::timeout(2) { sleep(0) }'

[snip working versions]

VERSION = v1_9_1_0
CMD     = ~/.multiruby/install/v1_9_1_0/bin/ruby -rtimeout -e
Timeout::timeout(2) { sleep(0) }

-e:1:in `sleep': execution expired (Timeout::Error)
        from -e:1:in `block in <main>'
        from -e:1:in `<main>'

RESULT = 256

TOTAL RESULT = 1 failures out of 5

Passed: jruby-1.2.0RC2, jruby-1.1.6, v1_8_6_110, 1.8.7-p72
Failed: v1_9_1_0
$ uname -a
Darwin xxxx 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28
PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386

I guess I should file a bug report.

Regards,
Sean