调整 exegroup: 按照和启动相反的顺序终止 Actor;

develop exegroup/v0.3.0
Ge Song 2 years ago
parent ea97eca24d
commit 3671b9f80a

@ -103,7 +103,7 @@ func (g *Group) validate() {
} }
for _, actor := range g.actors { for _, actor := range g.actors {
if actor.goFunc == nil { if actor.goFunc == nil {
panic(actor.name + "has nil goFunc") panic(actor.name + " has nil goFunc")
} }
} }
} }
@ -131,12 +131,12 @@ func (g *Group) wait(c chan error, cancel context.CancelFunc) (err error) {
ctx, cancel = context.WithTimeout(context.Background(), g.cfg.stopTimeout) ctx, cancel = context.WithTimeout(context.Background(), g.cfg.stopTimeout)
defer cancel() defer cancel()
} }
for _, m := range g.actors { for i := len(g.actors) - 1; i >= 0; i-- {
if m.stopFunc != nil { if g.actors[i].stopFunc != nil {
if g.cfg.concurrentStop { if g.cfg.concurrentStop {
go m.stopFunc(ctx) go g.actors[i].stopFunc(ctx)
} else { } else {
m.stopFunc(ctx) g.actors[i].stopFunc(ctx)
} }
} }
} }

Loading…
Cancel
Save