Hi,
Some people pointed out that the name of rb_thread_blocking_region()
(*1) is wrong function name.
Anyone has better name?
*1:
This function do that:
(1) release GVL (Giant VM Lock)
(2) call passsed function (as func ptr)
!! In this function, you *CANNOT* use Ruby C APIs.
!! Ruby C APIs needs GVL on the assumption.
(3) aquire GVL
So you can use this C API to call "blocking process".
See [ruby-core:13893] and following posts for details.
--
// SASADA Koichi at atdot dot net