Run one worker on main thread #375
Closed
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.
Followup to #344
On embedded platforms, we have a very limited number of threads (i.e. just two on the rp2040). Therefore, we would like the main thread to run a worker, rather than just sitting idle while other threads run workers. This PR proposes the simplest way of doing so.
One alternate approach is to make a list of threads, and a function that runs them all at once (essentially separating out the fork/join logic). I think it would look cleaner, but would involve a significant amount of extra code to create a "thread list" type. Since this "thread list" type would only be used once, I'm not sure if its worth the tradeoff.
Open to any other approaches as well.