about summary refs log tree commit homepage
path: root/ext/kgio/kgio.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/kgio/kgio.h')
-rw-r--r--ext/kgio/kgio.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/ext/kgio/kgio.h b/ext/kgio/kgio.h
index 6c5da5b..66a8705 100644
--- a/ext/kgio/kgio.h
+++ b/ext/kgio/kgio.h
@@ -39,16 +39,17 @@ void kgio_autopush_send(VALUE);
 
 VALUE kgio_call_wait_writable(VALUE io);
 VALUE kgio_call_wait_readable(VALUE io);
-#if defined(HAVE_RB_THREAD_CALL_WITHOUT_GVL)
-#  define KGIO_HAVE_THREAD_CALL_WITHOUT_GVL 1
-typedef  void *(*kgio_blocking_fn_t)(void*);
-#  define rb_thread_blocking_region(fn,data1,ubf,data2) \
-          rb_thread_call_without_gvl((kgio_blocking_fn_t)(fn),(data1),(ubf),(data2))
+#if defined(HAVE_RB_THREAD_CALL_WITHOUT_GVL) && \
+    !defined(HAVE_RB_THREAD_BLOCKING_REGION)
+#  define KGIO_WITHOUT_GVL(fn,data1,ubf,data2) \
+      rb_thread_call_without_gvl((fn),(data1),(ubf),(data2))
 #elif defined(HAVE_RB_THREAD_BLOCKING_REGION)
-#  define KGIO_HAVE_THREAD_CALL_WITHOUT_GVL 1
+typedef  VALUE(*kgio_blocking_fn_t)(void*);
+#  define KGIO_WITHOUT_GVL(fn,data1,ubf,data2) \
+      rb_thread_blocking_region((kgio_blocking_fn_t)(fn),(data1),(ubf),(data2))
 #endif /* HAVE_RB_THREAD_CALL_WITHOUT_GVL || HAVE_RB_THREAD_BLOCKING_REGION */
 
-#if defined(KGIO_HAVE_THREAD_CALL_WITHOUT_GVL) && defined(HAVE_POLL)
+#if defined(KGIO_WITHOUT_GVL) && defined(HAVE_POLL)
 #  define USE_KGIO_POLL
 #endif /* USE_KGIO_POLL */