Issue #3176 has been updated by caleb clausen.


oh no, I left something off. I should have said:

convert calls to

     $GIL.unlock
into
     Thread.current=$ready_to_run.dequeue
     Thread.current.wake_up!

and calls to

     $GIL.lock
into
     $ready_to_run.enqueue(thread: this_thread, priority: this_thread.priority)
     this_thread.go_to_sleep          #left off this line, sorry

----------------------------------------
http://redmine.ruby-lang.org/issues/show/3176

----------------------------------------
http://redmine.ruby-lang.org