Commit 99600241 authored by zhiqiangxu's avatar zhiqiangxu Committed by GitHub

handle `Read` more correctly (#10034)

* handle Read more correctly

* similar for Write
parent 75816d14
...@@ -30,12 +30,12 @@ func (f *FilePoller) Read(b []byte) (int, error) { ...@@ -30,12 +30,12 @@ func (f *FilePoller) Read(b []byte) (int, error) {
return 0, err return 0, err
} }
n, err := f.File.Read(b[read:]) n, err := f.File.Read(b[read:])
read += n
if errors.Is(err, os.ErrDeadlineExceeded) { if errors.Is(err, os.ErrDeadlineExceeded) {
if cerr := f.ctx.Err(); cerr != nil { if cerr := f.ctx.Err(); cerr != nil {
return read, cerr return read, cerr
} }
} else { } else {
read += n
if read >= len(b) { if read >= len(b) {
return read, err return read, err
} }
...@@ -50,12 +50,12 @@ func (f *FilePoller) Write(b []byte) (int, error) { ...@@ -50,12 +50,12 @@ func (f *FilePoller) Write(b []byte) (int, error) {
return 0, err return 0, err
} }
n, err := f.File.Write(b[written:]) n, err := f.File.Write(b[written:])
written += n
if errors.Is(err, os.ErrDeadlineExceeded) { if errors.Is(err, os.ErrDeadlineExceeded) {
if cerr := f.ctx.Err(); cerr != nil { if cerr := f.ctx.Err(); cerr != nil {
return written, cerr return written, cerr
} }
} else { } else {
written += n
if written >= len(b) { if written >= len(b) {
return written, err return written, err
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment