aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--test/ruby/test_signal.rb2
-rw-r--r--thread.c2
3 files changed, 2 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 044d5c11a6..4e3d016cf1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11 +1,3 @@
-Fri May 11 22:54:22 2012 NARUSE, Yui <naruse@ruby-lang.org>
-
- * thread.c (rb_threadptr_execute_interrupts_common): th->errinfo is
- not Fixnum, but exception object.
- This causes test_signal_requiring of test/ruby/test_signal.rb fail
- if the sub process is killed on waiting IO in lex_io_gets in require
- itself, not sleep.
-
Fri May 11 14:23:11 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (primary): begin/end block should be isolated from outside.
diff --git a/test/ruby/test_signal.rb b/test/ruby/test_signal.rb
index 6b97ae78bd..0e3af06d7b 100644
--- a/test/ruby/test_signal.rb
+++ b/test/ruby/test_signal.rb
@@ -212,7 +212,7 @@ th = Thread.new do
STDOUT.flush
end
end
-Thread.pass until th.stop? # this may stop inside lex_io_gets
+Thread.pass while th.running?
Process.kill(:INT, $$)
th.join
EOS
diff --git a/thread.c b/thread.c
index 5fb19547cd..27504e5e2e 100644
--- a/thread.c
+++ b/thread.c
@@ -1300,7 +1300,7 @@ rb_threadptr_execute_interrupts_common(rb_thread_t *th)
thread_debug("rb_thread_execute_interrupts: %"PRIdVALUE"\n", err);
if (err == eKillSignal || err == eTerminateSignal) {
- th->errinfo = rb_exc_new2(rb_eInterrupt, "");
+ th->errinfo = INT2FIX(TAG_FATAL);
TH_JUMP_TAG(th, TAG_FATAL);
}
else {