Classlib: Put 'protect' in PauseStreams (update state on error) #5626
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.
Purpose and Motivation
Fixes #5597.
Pprotect
is not sufficient to catch errors thrown while playing an event produced by a pattern. In this case, state variables had not been updated to reflect a PauseStream's new non-playing state.Julian had the good idea to embed
protect
into the Routine being managed by a PauseStream (I hadn't thought of this!), but an earlier version didn't apply this consistently.This version introduces it into
PauseStream
,Task
, andEventStreamPlayer
.Types of changes
To-do list
Under #5623, Julian had proposed some test cases, and volunteered to turn those into formal unit tests. So this PR does not include unit tests directly, but they will follow.