From 428e59a844df0245410ff22e68d46a36e4d16117 Mon Sep 17 00:00:00 2001 From: zxdstyle <1430822515@qq.com> Date: Wed, 4 Jan 2023 21:43:47 +0800 Subject: [PATCH] fix(uss): close of closed channel (close #2847 #2896) * fix(uss): close of closed channel * fix(uss): close of closed channel Co-authored-by: zxdstyle --- drivers/uss/driver.go | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/uss/driver.go b/drivers/uss/driver.go index 56c04f82..88126601 100644 --- a/drivers/uss/driver.go +++ b/drivers/uss/driver.go @@ -44,19 +44,17 @@ func (d *USS) Drop(ctx context.Context) error { func (d *USS) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) { prefix := getKey(dir.GetPath(), true) objsChan := make(chan *upyun.FileInfo, 10) - var err error - defer close(objsChan) - go func() { - err = d.client.List(&upyun.GetObjectsConfig{ - Path: prefix, - ObjectsChan: objsChan, - MaxListObjects: 0, - MaxListLevel: 1, - }) - }() - if err != nil { + + cfg := &upyun.GetObjectsConfig{ + Path: prefix, + ObjectsChan: objsChan, + MaxListObjects: 0, + MaxListLevel: 1, + } + if err := d.client.List(cfg); err != nil { return nil, err } + res := make([]model.Obj, 0) for obj := range objsChan { t := obj.Time @@ -68,7 +66,7 @@ func (d *USS) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]m } res = append(res, &f) } - return res, err + return res, nil } func (d *USS) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {