diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-14 13:08:02 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-14 13:08:02 +0000 |
commit | 2e315baf48b7c06d487cf6082e82377e93442bc7 (patch) | |
tree | 2aa7dce3d3326c0b2f4ef53962e1ab958449588a | |
parent | 13ea7a876159ef67d57a90e2020e28cb6082e580 (diff) |
The main Thread should have report_on_exception=true for consistency
* Adapt test and add specs.
* See [Feature #14143] [ruby-core:84227]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | spec/ruby/core/thread/report_on_exception_spec.rb | 10 | ||||
-rw-r--r-- | test/ruby/test_thread.rb | 4 | ||||
-rw-r--r-- | thread.c | 1 | ||||
-rw-r--r-- | vm.c | 1 |
4 files changed, 13 insertions, 3 deletions
diff --git a/spec/ruby/core/thread/report_on_exception_spec.rb b/spec/ruby/core/thread/report_on_exception_spec.rb index 74b7984a32..d8400c080a 100644 --- a/spec/ruby/core/thread/report_on_exception_spec.rb +++ b/spec/ruby/core/thread/report_on_exception_spec.rb @@ -34,6 +34,16 @@ ruby_version_is "2.4" do end describe "Thread#report_on_exception" do + ruby_version_is "2.5" do + it "returns true for the main Thread" do + Thread.current.report_on_exception.should == true + end + + it "returns true for new Threads" do + Thread.new { Thread.current.report_on_exception }.value.should == true + end + end + it "returns whether the Thread will print a backtrace if it exits with an exception" do t = Thread.new { Thread.current.report_on_exception = true } t.join diff --git a/test/ruby/test_thread.rb b/test/ruby/test_thread.rb index 32a155ef18..386a5cb89b 100644 --- a/test/ruby/test_thread.rb +++ b/test/ruby/test_thread.rb @@ -382,8 +382,8 @@ class TestThread < Test::Unit::TestCase assert_equal(true, Thread.report_on_exception, "global flag is true by default") - assert_equal(false, Thread.current.report_on_exception, - "the main thread has report_on_exception=false") + assert_equal(true, Thread.current.report_on_exception, + "the main thread has report_on_exception=true") Thread.report_on_exception = true Thread.current.report_on_exception = false @@ -743,7 +743,6 @@ thread_create_core(VALUE thval, VALUE args, VALUE (*fn)(ANYARGS)) RBASIC_CLEAR_CLASS(th->pending_interrupt_mask_stack); native_mutex_initialize(&th->interrupt_lock); - th->report_on_exception = th->vm->thread_report_on_exception; /* kick thread */ err = native_thread_create(th); @@ -2518,6 +2518,7 @@ th_init(rb_thread_t *th, VALUE self) th->retval = Qundef; #endif th->name = Qnil; + th->report_on_exception = th->vm->thread_report_on_exception; } static VALUE |