[WIP] Refactor the accessor implementation to be more device friendly #235
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.
The current accessor implementation relies on the usual easy detail::shared_ptr_implementation but requires some painful magical Clang rewriting of lambda captures to use drt::accessor instead.
Instead, make a new accessor implementation split in 2 parts, a simple one visible by the device and a heavy shepherd one to manage the accessed resource that will be optimized away by the device compiler in a simpler and natural way.
So make the runtime more complex, but the device compiler simpler.
This is a first step toward solving #179