ext/kgio/blocking_io_region.h in kgio-2.8.1 vs ext/kgio/blocking_io_region.h in kgio-2.9.0
- old
+ new
@@ -1,9 +1,12 @@
-#ifdef HAVE_RB_THREAD_BLOCKING_REGION
-# ifdef HAVE_RB_THREAD_IO_BLOCKING_REGION
+#ifdef KGIO_HAVE_THREAD_CALL_WITHOUT_GVL
+# if defined(HAVE_RB_THREAD_IO_BLOCKING_REGION)
/* temporary API for Ruby 1.9.3 */
VALUE rb_thread_io_blocking_region(rb_blocking_function_t *, void *, int);
-# else
+# elif defined(HAVE_RB_THREAD_CALL_WITHOUT_GVL)
+# define rb_thread_io_blocking_region(fn,data,fd) \
+ rb_thread_call_without_gvl((fn),(data),RUBY_UBF_IO,0)
+# elif defined(HAVE_RB_THREAD_BLOCKING_REGION)
# define rb_thread_io_blocking_region(fn,data,fd) \
rb_thread_blocking_region((fn),(data),RUBY_UBF_IO,0)
# endif
#endif