main loop refactor: remove redundant queue and no active waiting for results #690
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 PR wants to make changes to improve the main loop.
Currently the main loop is using a
VecDeque
to schedule jobs on the threadpool, but the threadpool implements an internal queue itself, so basically there the code is redundant.You can test this
Threadpool
behaviour with these simple lines:There is also a manual
thread::sleep
that can be avoided, relying on theReceiver::recv
function and without actively checking for results in the channel receiver.I think in general the main loop will be less convoluted.