зеркало из https://github.com/github/ruby.git
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
This commit is contained in:
Родитель
13ea7a8761
Коммит
2e315baf48
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
1
thread.c
1
thread.c
|
@ -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);
|
||||
|
|
1
vm.c
1
vm.c
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче