From 26bbe633de2cd74b1060fbaf716d89c55b003a7b Mon Sep 17 00:00:00 2001
From: Lars Kanis <lars@greiz-reinsdorf.de>
Date: Sun, 14 Jun 2015 07:13:30 +0200
Subject: [PATCH] Set g_fxrb_thread_has_gvl on callback side, to track GVL
 state correctly.

---
 ext/fox16_c/include/gvl_wrappers.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ext/fox16_c/include/gvl_wrappers.h b/ext/fox16_c/include/gvl_wrappers.h
index 918a99a..e93a4af 100644
--- a/ext/fox16_c/include/gvl_wrappers.h
+++ b/ext/fox16_c/include/gvl_wrappers.h
@@ -120,7 +120,9 @@ extern __thread int g_fxrb_thread_has_gvl;
         struct gvl_wrapper_##name##_##paramcount##_params<firstparamtype FOR_EACH_PARAM_OF_##name##_##paramcount(DEFINE_PARAM_LIST5)> params = { \
           {firstparamname FOR_EACH_PARAM_OF_##name##_##paramcount(DEFINE_PARAM_LIST1)}, when_non_void((rettype)0) \
         }; \
+        g_fxrb_thread_has_gvl = 1; \
         rb_thread_call_with_gvl(gvl_##name##_##paramcount##_skeleton<firstparamtype FOR_EACH_PARAM_OF_##name##_##paramcount(DEFINE_PARAM_LIST5)>, &params); \
+        g_fxrb_thread_has_gvl = 0; \
         when_non_void( return params.retval; ) \
       } \
     }
-- 
GitLab