Hello,

In message "[ruby-core:42972] 50$ for answering my stackoverflow question about Ruby GIL 500 reputation stackoverflow question about Ruby GIL 50$ for answering my stackoverflow question."
    on Feb.27,2012 23:00:14, <grigory.v.p / gmail.com> wrote:
> Ok, seems no one needs stackoverflow reputation :(. So i mirrored my
> question as oDesk job posting here:
> https://www.odesk.com/jobs/200703042
> If someone can spare a few minutes and give a comprehensive answer to
> this question i will gladly pay via oDesk or PayPal.

Here is a patch for 1.9.3-p0 (because you said that you are
using the version):

--- thread.c.orig 2012-02-28 00:37:55.894924200 +0900 +++ thread.c 2012-02-28 00:45:11.171820700 +0900 @@ -1312,7 +1312,7 @@ rb_threadptr_execute_interrupts_common(r } if (timer_interrupt) { - unsigned long limits_us = 250 * 1000; + unsigned long limits_us = 10 * 1000; if (th->priority > 0) limits_us <<= th->priority; --- thread.c.orig 2012-02-28 00:37:55.894924200 +0900 +++ thread.c 2012-02-28 00:45:11.171820700 +0900 @@ -1312,7 +1312,7 @@ rb_threadptr_execute_interrupts_common(r } if (timer_interrupt) { - unsigned long limits_us = 250 * 1000; + unsigned long limits_us = 10 * 1000; if (th->priority > 0) limits_us <<= th->priority; --- thread_pthread.c.orig 2012-02-28 00:40:35.453050400 +0900 +++ thread_pthread.c 2012-02-28 00:45:25.791656900 +0900 @@ -1114,7 +1114,7 @@ close_communication_pipe(void) /* 100ms. 10ms is too small for user level thread scheduling * on recent Linux (tested on 2.6.35) */ -#define TIME_QUANTUM_USEC (100 * 1000) +#define TIME_QUANTUM_USEC (10 * 1000) static void * thread_timer(void *p)
But I don't recommend to use it because this is only a workaround, so you don't have to pay for me :) Regards, -- U.Nakamura <usa / garbagecollect.jp>