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 | ||
array | ||
bignum | ||
bug_reporter | ||
class | ||
debug | ||
exception | ||
file | ||
float | ||
funcall | ||
gvl | ||
hash | ||
integer | ||
iseq_load | ||
iter | ||
load | ||
marshal | ||
method | ||
num2int | ||
path_to_class | ||
popen_deadlock | ||
postponed_job | ||
proc | ||
rational | ||
st | ||
string | ||
struct | ||
symbol | ||
thread_fd_close | ||
time | ||
tracepoint | ||
typeddata | ||
vm | ||
wait_for_single_fd | ||
win32 | ||
test_bug-3571.rb | ||
test_bug-5832.rb | ||
test_bug-14834.rb | ||
test_enumerator_kw.rb | ||
test_notimplement.rb | ||
test_printf.rb | ||
test_recursion.rb | ||
test_scan_args.rb |