This repository was archived by the owner on Jan 3, 2023. It is now read-only.
Implicit destructor for Task's data when type is not trivially destructible #4
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.
As performance of Task's data destructors can be a problem, i tried to find a way to reduce the cost and use it only when types required it.
The main idea is to inline the task execution code in a wrapper together with the code for destruction, in this way we dont need to add any additional indirect function call.
Note this PR is mostly for discussion about the idea, as i feel i have not sufficient knowledge on how GTS works.
Note: Use lambdas for the task function only will work with c++20.
Sorry, if I'm missing some important detail and the idea is failing :P