Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
When the decoder goes into State::Done, the decoder is considered done with reading. Therefore no calls will be made to the underlying reader. As a consequence, the reader never reaches EOF state. i.e. The AsyncBufRead never returns `Poll::Ready(Ok(&[]))`. This is problematic as this prevents underlaying streams, readers and channels to gracefully shutdown. To solve this issue, the decoder will make one interation more into state::Decoding. This forces one last read into the underlying reader by calling poll_fill_buffer. before it goes into State::Done via State::Flushing.
- Loading branch information