Handle a case where transfers channel was not closed properly.

This commit is contained in:
Sebastian Zagrodzki
2017-04-26 21:50:10 +02:00
parent ae8627a890
commit cdd4223813
2 changed files with 15 additions and 0 deletions

View File

@@ -75,6 +75,9 @@ func (r ReadStream) Read(p []byte) (int, error) {
if err != nil {
// wait error aborts immediately, all remaining data is invalid.
t.free()
if s.delayedErr == nil {
close(s.transfers)
}
for t := range s.transfers {
t.cancel()
t.wait()