From 8bbd8674acb5daa7b53a8c893859a07f8dc3acea Mon Sep 17 00:00:00 2001 From: qydysky Date: Thu, 13 Jul 2023 01:48:33 +0800 Subject: [PATCH] add --- io/io.go | 22 ++++++++++++++++------ reqf/Reqf.go | 4 ++-- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/io/io.go b/io/io.go index fea9b2c..475e3f9 100644 --- a/io/io.go +++ b/io/io.go @@ -105,18 +105,28 @@ func WithCtxTO(ctx context.Context, callTree string, to time.Duration, w io.Writ return RWC{ func(p []byte) (n int, err error) { - if n, err = r.Read(p); n != 0 { - select { - case <-ctx.Done(): - default: + select { + case <-ctx.Done(): + chanw.Store(-1) + err = context.Canceled + return + default: + if n, err = r.Read(p); n != 0 { chanw.Store(time.Now().Unix()) } } return }, func(p []byte) (n int, err error) { - if n, err = w.Write(p); n != 0 { - chanw.Store(time.Now().Unix()) + select { + case <-ctx.Done(): + chanw.Store(-1) + err = context.Canceled + return + default: + if n, err = w.Write(p); n != 0 { + chanw.Store(time.Now().Unix()) + } } return }, diff --git a/reqf/Reqf.go b/reqf/Reqf.go index 1b87f64..0233921 100644 --- a/reqf/Reqf.go +++ b/reqf/Reqf.go @@ -280,8 +280,8 @@ func (t *Req) Reqf_1(ctx context.Context, val Rval) (err error) { val.SaveToChan <- buf[:n] } } else if we != nil { - if !errors.Is(e, io.EOF) { - err = errors.Join(err, ErrWriteRes, e) + if !errors.Is(we, io.EOF) { + err = errors.Join(err, ErrWriteRes, we) } break } -- 2.39.2