Remove single value buffer from AsyncSequence implementation #208
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.
Only the first emitted value needs to be buffered. Once we have consumed the first value we can wait for a call to
Iterator.next
before invoking thenext
callback from Kotlin.This will make sure that
emit
in Kotlin suspends until Swift callsIterator.next
to get the next value.We could even delay the
Flow
collection until the first call toIterator.next
.Which would allow us to remove the
item
buffer completely.Although in that case we'll need a
fatalError
for thenil
check oncontinuation
.