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
Use of std::invoke to run the body in algorithms and graph nodes #880
Conversation
…oneapi-src/oneTBB into dev/kboyarinov/invoke_semantics
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.
Partial review. So far have looked at _utils.h, parallel_for.h, parallel_for_each.h, parallel_scan.h, _pipeline_filters.h and parallel_reduce.h. Mostly looks good to me. A couple of small comments/questions. Still need to look at tests, conformance tests & flow graph.
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
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.
Fixes needed.
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.
The flow graph modifications look ok to me. Made a couple of comments to make sure I understand why certain invocation points are excluded.
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.
Did a quick look through tests and they look ok to me.
Description
Change the execution of the body in TBB algorithms and Flow Graph nodes to use
std::invoke
instead ofoperator()
.It allows to pass pointers to non-static member functions and non-static member objects as a body.
Affected components:
parallel_for
parallel_reduce
parallel_deterministic_reduce
parallel_for_each
parallel_scan
parallel_pipeline
function_node
multifunction_node
async_node
sequencer_node
join_node
withkey_matching
policyFixes # - issue number(s) if exists
Type of change
Choose one or multiple, leave empty if none of the other choices apply
Add a respective label(s) to PR if you have permissions
Tests
Documentation
Breaks backward compatibility
Notify the following users
List users with
@
to send notificationsOther information