summaryrefslogtreecommitdiff
path: root/thread.c
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-08-25 12:09:19 -0700
committerJeremy Evans <code@jeremyevans.net>2019-12-03 17:27:34 +0200
commit5c2c3966851ed074eb468ad36d8d75e53b8eab6c (patch)
treea9494a7326ca8dc57d0cedcf2ee3df9dfa08b60a /thread.c
parent7f2cd2ae6fea76ff3a2b95b69e6e2f749e8a249f (diff)
Check interrupts before starting thread
Fixes a hang when Thread.new calls Thread.new in a loop. Fixes [Bug #13688]
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2715
Diffstat (limited to 'thread.c')
-rw-r--r--thread.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/thread.c b/thread.c
index 9bc2a1882b..d1bf612d91 100644
--- a/thread.c
+++ b/thread.c
@@ -693,6 +693,7 @@ thread_do_start(rb_thread_t *th)
}
rb_adjust_argv_kw_splat(&args_len, &args_ptr, &kw_splat);
+ vm_check_ints_blocking(th->ec);
th->value = rb_vm_invoke_proc(th->ec, proc,
args_len, args_ptr,
kw_splat, VM_BLOCK_HANDLER_NONE);