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:
parent
e4c1b19996
commit
3dc212896c
1 changed files with 2 additions and 1 deletions
3
thread.c
3
thread.c
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue