In multi-threaded ruby execution, you cannot get parallel execution of threads unless you use those functions which frees GVL.
In my understanding, following ruby methods frees GVL:
Kernel#sleep
IO#read
andIO#write
Question
- In pure ruby, is there any other methods which frees GVL?
Version
- I'm currently using ruby version 2.6, so expect the info of this version.