Support specifying worker thread affinities #146
Merged
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.
Add
Thread::Affinity
which describes the cores on which a thread canexecute.
Add
Thread::Affinity::Policy
which generates anAffinity
for athread by identifier.
Policy
contains two helper functions that returnPolicy
implementations:anyOf()
returns aPolicy
that returns an Affinity for theavailable cores in the
Affinity
passed to the function.oneOf()
returns aPolicy
that returns an affinity with a singleenabled core from the
Affinity
passed to the function.Other
Policy
s can be implemented by the user.Add a new
affinityPolicy
field toScheduler::Config
allowing theuser to specify the rules for assigning thread affinities to each
scheduler worker thread.
Affinities are currently only supported on windows, linux and freebsd.
Issue: #136