[REVIEW] Explicit stream argument for device_buffer methods #169
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.
When reviewing #167 I realized that some of the complexity of that PR is a result of
rmm::device_buffer()
having a reference to a stream that it uses internally. This raised some concerns in my mind.resize
, orshrink_to_fit
? Error.device_buffer::stream()
to get that stream and then sync it.I think it's more obvious for
device_buffer
asynchronous methods to take an explicit stream argument. (The exception isoperator=
, since it can't take a stream parameter).This PR makes that change. Now, the stored _stream is only used by the destructor. To enable changing what stream is used for destruction, this PR also adds a new
set_stream()
method.