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.
Introduce a cooperative-style scheduler for testing use. Test code using threads must opt into using the cooperative scheduler by explicitly registering themselves with the scheduler, removing themselves from the scheduler, etc. All code must be annotated with explicit calls to
CoopScheduler.sched()
, similar toThread.yield()
but with 100% deterministic/repeatable thread execution & interleaving.Deterministic coop thread scheduling is managed via a 'schedule', which is a list or array of thread numbers to execute in turn. In cases where the schedule is shorter than the total number of
sched()
calls, the array is re-used ("wrap-around" style) to simulate a schedule of infinite length.