mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
36da0b3da1
Asynchronous events such as signal trap, finalization timing, thread switching and so on are managed by "interrupt_flag". Ruby's threads check this flag periodically and if a thread does not check this flag, above events doesn't happen. This checking is CHECK_INTS() (related) macro and it is placed at some places (laeve instruction and so on). However, at the end of C methods, C blocks (IMEMO_IFUNC) etc there are no checking and it can introduce uninterruptible thread. To modify this situation, we decide to place CHECK_INTS() at vm_pop_frame(). It increases interrupt checking points. [Bug #16366] This patch can introduce unexpected events... |
||
---|---|---|
.. | ||
arith_seq/extract | ||
array/resize | ||
bignum | ||
bug-3571 | ||
bug-5832 | ||
bug-14834 | ||
bug_reporter | ||
class | ||
cxxanyargs | ||
debug | ||
dln/empty | ||
enumerator_kw | ||
exception | ||
fatal | ||
file | ||
float | ||
funcall | ||
gvl/call_without_gvl | ||
hash | ||
integer | ||
iseq_load | ||
iter | ||
load | ||
marshal | ||
memory_status | ||
method | ||
notimplement | ||
num2int | ||
path_to_class | ||
popen_deadlock | ||
postponed_job | ||
printf | ||
proc | ||
rational | ||
rb_call_super_kw | ||
recursion | ||
regexp | ||
scan_args | ||
st | ||
string | ||
struct | ||
symbol | ||
thread_fd_close | ||
time | ||
tracepoint | ||
typeddata | ||
vm | ||
wait_for_single_fd | ||
win32 | ||
auto_ext.rb |