[thread_executor] Fix thread sleep in work loop #73
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.
Summary
Fix the loop in the thread executor to only sleep when no work has been done on an iteration. Because only one message per actor is processed per loop (for fairness or whatever), it's very possible/likely for there to be more message waiting. In those instances, we don't need to sleep.
Motivation
Found this issue while working on #29. We shouldn't sleep when there is still work to be done (potentially). Even though the thread-executor will eventually be replaced with a tokio runtime, should still fix this up.
Test Plan
Existing examples thoroughly exercise this.