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.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flow Graph scalability improvements #1348
Flow Graph scalability improvements #1348
Changes from 25 commits
e8775e6
300cf36
dc47f47
9fc0dc1
d73588f
6b8760e
b783d09
b616e7b
9debc85
ef1ede2
021c292
85d163d
fbe6dc2
07cb0a3
30d5caa
e238a5e
5c16961
e33dcf0
6b6704f
d112e09
f95d34b
a53218f
128a364
412c8de
b3fec48
466826b
5957192
4ae4781
7d1ff3f
5e41850
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this can happen even without
async_node
. Consider the following case:Don't we support such cases anymore?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case it is guaranteed that
t1
will either join thegta
and execute the task if there is an available slot or send a task and it would be executed by another worker ingta
. In each case, the thread executing the lambda and callingtry_put
is guaranteed to be ingta
and hence has its reference node in the TLS (the code will choose thetrue
branch).If
t1
would submit work in the graph without explicitly callingtask_arena::execute
, thefalse
branch would be chosen and the task reference counting would work as before this PR by adding a reference to graph wait_context.