2 Commits

Author SHA1 Message Date
5f89d83094 with defer 2022-09-21 22:08:27 +02:00
f9109382cb components signal 2022-09-21 21:45:48 +02:00

View File

@@ -33,27 +33,34 @@ func NewManager() *Manager {
type ComponentsAreReady struct { type ComponentsAreReady struct {
} }
func (m *Manager) RunNonBlocking(ctx context.Context) error { func (m *Manager) RunNonBlocking(ctx context.Context, readyChan chan ComponentsAreReady) error {
m.initLifetime() go func() error {
err := m.init(ctx) defer func(ctx context.Context) {
if err != nil { err := m.shutdown(ctx)
return err if err != nil {
} panic(err)
}
}(ctx)
m.initLifetime()
err := m.init(ctx)
if err != nil {
return err
}
err = m.startBlocking(ctx) err = m.startBlocking(ctx)
if err != nil { if err != nil {
return err return err
} }
err = m.wait(ctx) readyChan <- ComponentsAreReady{}
if err != nil {
return err
}
err = m.shutdown(ctx) err = m.wait(ctx)
if err != nil { if err != nil {
return err return err
} }
return nil
}()
return nil return nil
} }