Logan Capaldo
12/18/2006 3:43:00 AM
On Mon, Dec 18, 2006 at 12:00:06PM +0900, Michael W. Ryder wrote:
> Logan Capaldo wrote:
> >On Mon, Dec 18, 2006 at 10:40:05AM +0900, Michael W. Ryder wrote:
> >>Maybe I am missing something here but it doesn't seem to work for me. I
> >>have the following simple program:
> >>
> >> require 'timeout'
> >> foo = nil
> >> status = Timeout::timeout(5) {
> >> foo = gets()
> >> }
> >> puts (foo)
> >>
> >>If I enter something, say 123, then the program displays the 123 as
> >>expected. If I just wait it sits there until I enter something which is
> >>not what I want. I want the input to terminate and display that foo is
> >>'nil'. For some reason testing the value of status shows that it is the
> >>same as the input, but this may not be relevant to the problem.
> >It works for me (well actually timeout throws an exception when the time
> >runs out, doesn't just baort gracefully, but that's what it's supposed
> >to do.)
> >
> >What platform are you on?
> >
>
> Windows XP Pro, which I guess is part of the problem. The problem I
> have with Ruby is that I know it is possible to get this to work in
> other languages, BBX (Business Basic) for example. It may be that
> because BBX did not use Microsoft compilers, it has been out longer than
> Microsoft has existed, that it doesn't have some limitations built into
> the Microsoft compilers. This of course raises the question is there a
> free compiler, such as gcc, which could compile Ruby without the thread
> lock problem?
I believe the other thread established that this kind of code works in
Cygwin and msys built rubies.