}
hub.snapshot = func(ctx context.Context, snapshot func() error) error {
- return messages.Snapshot(func() error {
- return daemonSnapshot(ctx, loops, snapshot)
- })
+ return messages.SnapshotAgents(ctx, snapshot)
+ }
+
+ runtime := &DaemonChildren{
+ ctx: ctx,
+ cancel: cancel,
+ root: l,
+ messages: messages,
}
+ l.tools.children = runtime
var workers sync.WaitGroup
hub.CloseAll()
workers.Wait()
- return errors.Join(err, whatsappErr, schedulesErr, botErr, errors.Join(childErrors...))
+ return errors.Join(err, whatsappErr, schedulesErr, botErr, errors.Join(childErrors...), runtime.Close())
}
// daemonRunChild runs a child's turn loop and its schedules until either stops.