зеркало из https://github.com/github/ruby.git
Make pending_interrupt?(Exception) work
A patch from katsu (Katsuhiro Ueno) [Bug #19110]
This commit is contained in:
Родитель
558137d5f3
Коммит
c3de7a3c58
|
@ -1515,4 +1515,12 @@ q.pop
|
|||
end
|
||||
};
|
||||
end
|
||||
|
||||
def test_pending_interrupt?
|
||||
t = Thread.handle_interrupt(Exception => :never) { Thread.new { Thread.stop } }
|
||||
t.raise(StandardError)
|
||||
assert_equal(true, t.pending_interrupt?)
|
||||
assert_equal(true, t.pending_interrupt?(Exception))
|
||||
assert_equal(false, t.pending_interrupt?(ArgumentError))
|
||||
end
|
||||
end
|
||||
|
|
2
thread.c
2
thread.c
|
@ -1922,7 +1922,7 @@ rb_threadptr_pending_interrupt_include_p(rb_thread_t *th, VALUE err)
|
|||
int i;
|
||||
for (i=0; i<RARRAY_LEN(th->pending_interrupt_queue); i++) {
|
||||
VALUE e = RARRAY_AREF(th->pending_interrupt_queue, i);
|
||||
if (rb_class_inherited_p(e, err)) {
|
||||
if (rb_obj_is_kind_of(e, err)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче