Task system: Send incoming tasks directly to waiting executors #7315
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 contains some follow-up cleanups from the discussion in #7269:
const std::string&
from theget_name
calls to avoid any additional copies. The name is generally per-type, can opt in to per-instance where appropriate, in either case it should be formatted/constructed eagerly..empty()
method. Replaced by aget_summary()
returning some basic stats about the current queue state.IJobBoard
and clarifying which tests (most) are testing a localJobBoard
vs the global staticccf::tasks
.Also a perf improvement - rather than gluing together discrete
condition_variable
and locked queue (taking 2 separate mutexes in sequence) we use acondition_variable
wait for workers to pause directly on the work queue.