summaryrefslogtreecommitdiff
path: root/thread.c
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-26 22:49:36 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-26 22:49:36 +0000
commit253938067a37d7ba9751ec1afbbd6033f886cab4 (patch)
tree6f602369e2968353069bda272015e82155062060 /thread.c
parent5768a4a7e051963db769b5aafe8aadc6bc97f867 (diff)
* thread.c (rb_thread_terminate_all): add RUBY_VM_CHECK_INTS_BLOCKING().
Otherwise the loop in this function behave as busy loop because native_sleep() return immediately when RUBY_VM_INTERRUPTED() is true. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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 878464186e..ed8d429ef8 100644
--- a/thread.c
+++ b/thread.c
@@ -386,6 +386,7 @@ rb_thread_terminate_all(void)
PUSH_TAG();
if (EXEC_TAG() == 0) {
native_sleep(th, 0);
+ RUBY_VM_CHECK_INTS_BLOCKING(th);
}
else {
/* ignore exception */