]> 127.0.0.1 Git - part/.git/commitdiff
1 v0.28.0+20231118e87434e
authorqydysky <qydysky@foxmail.com>
Sat, 18 Nov 2023 05:38:47 +0000 (13:38 +0800)
committerqydysky <qydysky@foxmail.com>
Sat, 18 Nov 2023 05:38:47 +0000 (13:38 +0800)
component/Component.go

index 7eca9dbc813542fb9dfbab6179a0efe4472e5a78..a50e751018579e5393b39a9220bc8f789d675920 100644 (file)
@@ -135,6 +135,7 @@ func (t *Components[T]) Start(ctx context.Context, ptr T, concurrency ...int) er
        for i := 0; i < len(t.comps); i++ {
                if t.comps[i].del.Load() || t.comps[i].deal == nil {
                        wg.Done()
+                       err <- nil
                        continue
                }
                if con != nil {
@@ -155,5 +156,16 @@ func (t *Components[T]) Start(ctx context.Context, ptr T, concurrency ...int) er
 
        wg.Wait()
 
-       return nil
+       for {
+               select {
+               case e := <-err:
+                       if errors.Is(e, ErrSelfDel) {
+                               needDel = true
+                       } else if e != nil {
+                               return e
+                       }
+               default:
+                       return nil
+               }
+       }
 }