1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

check return value of blocking_region_begin().

blocking_region_begin() can return FALSE if it fails to acquire
GVL, so check it.
This commit is contained in:
Koichi Sasada 2019-07-15 13:52:25 +09:00
parent e4c1b19996
commit 3dc212896c

View file

@ -1679,7 +1679,8 @@ rb_thread_call_with_gvl(void *(*func)(void *), void *data1)
/* enter to Ruby world: You can access Ruby values, methods and so on. */
r = (*func)(data1);
/* leave from Ruby world: You can not access Ruby values, etc. */
blocking_region_begin(th, brb, prev_unblock.func, prev_unblock.arg, FALSE);
int released = blocking_region_begin(th, brb, prev_unblock.func, prev_unblock.arg, FALSE);
RUBY_ASSERT_ALWAYS(released);
return r;
}