News for hackers. Stuff that matters.
Re:Why we switched from Python to Go by tychver on Thursday October 19, 2017 @07:08AM (#15506909)
It's definitely preemptive rather than cooperative. Ruby/Puma is actually using one OS thread per Ruby thread, so when one hits a DB call and blocks on sync IO, it releases the GVL and another Ruby thread can proceed. There's a timer thread Ruby runs and pre-empts each thread to schedule them.

There are no comments on this comment yet.