1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/-test-
Koichi Sasada 36da0b3da1 check interrupts at each frame pop timing.
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...
2019-11-29 17:47:02 +09:00
..
arith_seq/extract
array/resize
bignum Update dependencies 2019-11-18 23:16:22 +09:00
bug-3571
bug-5832
bug-14834
bug_reporter
class
cxxanyargs Check -1 arity for C++ 2019-11-22 18:42:49 +09:00
debug
dln/empty
enumerator_kw
exception
fatal
file
float Revert the line for nextafter.c for FreeBSD make 2019-11-20 15:37:05 +09:00
funcall
gvl/call_without_gvl
hash
integer Update dependencies 2019-11-18 23:16:22 +09:00
iseq_load
iter
load
marshal
memory_status
method
notimplement
num2int
path_to_class
popen_deadlock
postponed_job check interrupts at each frame pop timing. 2019-11-29 17:47:02 +09:00
printf Update dependencies 2019-11-18 23:16:22 +09:00
proc
rational Update dependencies 2019-11-18 23:16:22 +09:00
rb_call_super_kw
recursion
regexp
scan_args
st
string Update dependencies 2019-11-18 23:16:22 +09:00
struct
symbol
thread_fd_close Update dependencies 2019-11-18 23:16:22 +09:00
time
tracepoint
typeddata
vm
wait_for_single_fd
win32
auto_ext.rb