[#1263] Draft of the updated Ruby FAQ — Dave Thomas <Dave@...>

33 messages 2000/02/08

[#1376] Re: Scripting versus programming — Andrew Hunt <andy@...>

Conrad writes:

13 messages 2000/02/15

[#1508] Ruby/GTK and the mainloop — Ian Main <imain@...>

17 messages 2000/02/19
[#1544] Re: Ruby/GTK and the mainloop — Yasushi Shoji <yashi@...> 2000/02/23

Hello Ian,

[#1550] Re: Ruby/GTK and the mainloop — Ian Main <imain@...> 2000/02/23

On Wed, Feb 23, 2000 at 02:56:10AM -0500, Yasushi Shoji wrote:

[#1516] Ruby: PLEASE use comp.lang.misc for all Ruby programming/technical questions/discussions!!!! — "Conrad Schneiker" <schneiker@...>

((FYI: This was sent to the Ruby mail list.))

10 messages 2000/02/19

[#1569] Re: Ruby: constructors, new and initialise — Yukihiro Matsumoto <matz@...>

The following message is a courtesy copy of an article

12 messages 2000/02/25

[ruby-talk:01552] Re: Ruby thread scheduling buglet

From: Ian Main <imain@...>
Date: 2000-02-24 01:18:48 UTC
List: ruby-talk #1552
On Wed, Feb 23, 2000 at 04:49:57PM -0800, Ian Main wrote:

[snip]

> I think the reason is in rb_thread_schedule ():
> 
> ...
> 
> if (num_waiting_on_timer > 0) {
>   now = timeofday();
>   FOREACH_THREAD_FROM(curr, th) {
>     if (th->wait_for & WAIT_TIME) {
>       if (th->delay <= now) {
>         th->delay = 0.0;
> 	th->wait_for &= ~WAIT_TIME;
> 	th->status = THREAD_RUNNABLE;
> 	num_waiting_on_timer--;
> 	next = th;
>       } else if (th->delay < delay) {
> 	delay = th->delay;
>       }
>     }
>   }
>   END_FOREACH_FROM(curr, th);
> }
> 
[snip]
> 
> I dunno what the perfect ruby-ish solution is so I'll leave that to you folk.
> 

ok, I lied :)  Looks like all you need to do is change:

next = th;

to

if (!next) next = th;

like the rest of the checks do.. This looks good to me as it creates fair
scheduling.

Ian

In This Thread