Skip to content

Commit a186284

Browse files
buengesencw
authored andcommitted
asyncreader: fix EOF error
1 parent 41ba1bb commit a186284

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

fs/asyncreader/asyncreader.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,9 @@ func (a *AsyncReader) WriteTo(w io.Writer) (n int64, err error) {
174174
n = 0
175175
for {
176176
err = a.fill()
177+
if err == io.EOF {
178+
return n, nil
179+
}
177180
if err != nil {
178181
return n, err
179182
}
@@ -183,6 +186,10 @@ func (a *AsyncReader) WriteTo(w io.Writer) (n int64, err error) {
183186
if err != nil {
184187
return n, err
185188
}
189+
if a.cur.err == io.EOF {
190+
a.err = a.cur.err
191+
return n, err
192+
}
186193
if a.cur.err != nil {
187194
a.err = a.cur.err
188195
return n, a.cur.err

fs/asyncreader/asyncreader_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ func TestAsyncWriteTo(t *testing.T) {
6060

6161
var dst = &bytes.Buffer{}
6262
n, err := io.Copy(dst, ar)
63-
assert.Equal(t, io.EOF, err)
63+
require.NoError(t, err)
6464
assert.Equal(t, int64(10), n)
6565

66-
// Should still return EOF
66+
// Should still not return any errors
6767
n, err = io.Copy(dst, ar)
68-
assert.Equal(t, io.EOF, err)
68+
require.NoError(t, err)
6969
assert.Equal(t, int64(0), n)
7070

7171
err = ar.Close()

0 commit comments

Comments
 (0)