]> 127.0.0.1 Git - part/.git/commitdiff
add v0.28.0+202307128bbd867
authorqydysky <qydysky@foxmail.com>
Wed, 12 Jul 2023 17:48:33 +0000 (01:48 +0800)
committerqydysky <qydysky@foxmail.com>
Wed, 12 Jul 2023 17:48:33 +0000 (01:48 +0800)
io/io.go
reqf/Reqf.go

index fea9b2c140cf285ffe2af154b50d123eef80647c..475e3f933421a5ef58ea35274e09ab42b3c726a2 100644 (file)
--- 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
                },
index 1b87f6409ced3367a2cbc2aaf4a9799f35c129a3..02339215f186c0047409836bfad686d5c8ef7af3 100644 (file)
@@ -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
                        }