improve interaction of task switches and finally blocks (#12485) #12541
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This does two things intended to improve the state of affairs in issue #12485:
Behavior with this change:
We give the correct exception, but the backtrace is lost on task switch since nobody saved it and we don't save it automatically. Basically, somebody has to call
catch_backtrace
between catching and the next throw or task switch. This doesn't interfere with task backtraces, sincetask_done_hook
now callscatch_backtrace
. I think this will make things less confusing; seeing no backtrace tells you that it was lost, and is better than a backtrace from some random different place.