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... |
||
---|---|---|
.. | ||
argf | ||
array | ||
basicobject | ||
binding | ||
builtin_constants | ||
class | ||
comparable | ||
complex | ||
dir | ||
encoding | ||
enumerable | ||
enumerator | ||
env | ||
exception | ||
false | ||
fiber | ||
file | ||
filetest | ||
float | ||
gc | ||
hash | ||
integer | ||
io | ||
kernel | ||
main | ||
marshal | ||
matchdata | ||
math | ||
method | ||
module | ||
mutex | ||
nil | ||
numeric | ||
objectspace | ||
proc | ||
process | ||
queue | ||
random | ||
range | ||
rational | ||
regexp | ||
signal | ||
sizedqueue | ||
string | ||
struct | ||
symbol | ||
systemexit | ||
thread | ||
threadgroup | ||
time | ||
tracepoint | ||
true | ||
unboundmethod | ||
warning |