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)>, ¶ms); \ + g_fxrb_thread_has_gvl = 0; \ when_non_void( return params.retval; ) \ } \ } -- GitLab