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.
This cleans-up the flushing logic from #1060.
This change makes it so
flush
is interrupted (doesn't get polled anymore) when new writes are in progress. The reason for this is that if a write returnsPoll::Pending
either the downstream write buffers are full already or tokio decided to force a yield to the executor. In either case there's no advantage in explicitly trying to flush.Before:
flush
ing. Operation isPoll::Pending
Poll::Pending
in the middle of writing itflush
again.Poll::Pending
is almost always guaranteed here.After:
flush
ing. Operation isPoll::Pending
Poll::Pending
in the middle of writing itPoll::Ready
I'm not sure about the
nats::publish_throughput/32
benchmark result but it looks very flacky.Benchmarks