From: "U.Nakamura" Date: 2012-02-28T00:51:10+09:00 Subject: [ruby-core:42974] Re: 50$ for answering my stackoverflow question about Ruby GIL 500 reputation stackoverflow question about Ruby GIL 50$ for answering my stackoverflow question. 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, 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