Issue #13163 has been updated by Eregon (Benoit Daloze).


+1
The patch looks good.
The message of the assert_warn should be changed though.

----------------------------------------
Misc #13163: Uncaught exceptions may not be reported when Thread#report_on_exception=true and Thread#abort_on_exception=true
https://bugs.ruby-lang.org/issues/13163#change-66719

* Author: tagomoris (Satoshi TAGOMORI)
* Status: Feedback
* Priority: Normal
* Assignee: 
----------------------------------------
When we set true on both of `Thread#report_on_exception` and `Thread#abort_on_exception`, it just works as `Thread#abort_on_exception` and raised error will be re-raised in main thread.
But in our case, main thread sometimes in `begin`-`rescue` clause, or sometimes out of `begin`-`rescue` clause.
When main thread in `begin`-`rescue` clause (and main thread code may raise errors in their own business), we cannot know that threads are dead by errors.

What I expected by specifying both of `Thread#report_on_exception=true` and `Thread#abort_on_exception=true`:

* "Thread terminated with exception" is reported always (even if `Thread#abort_on_exception` is set)
* Raised error is re-raised in main thread if `Thread#abort_on_exception` is true

How do you think about this idea?



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>