From f9109382cbe942b643d924dc6bfd2cf8990e1f10 Mon Sep 17 00:00:00 2001 From: kjuulh Date: Wed, 21 Sep 2022 21:45:48 +0200 Subject: [PATCH] components signal --- manager.go | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/manager.go b/manager.go index d60a026..c04d742 100644 --- a/manager.go +++ b/manager.go @@ -33,27 +33,32 @@ func NewManager() *Manager { type ComponentsAreReady struct { } -func (m *Manager) RunNonBlocking(ctx context.Context) error { - m.initLifetime() - err := m.init(ctx) - if err != nil { - return err - } +func (m *Manager) RunNonBlocking(ctx context.Context, readyChan chan ComponentsAreReady) error { + go func() error { + m.initLifetime() + err := m.init(ctx) + if err != nil { + return err + } - err = m.startBlocking(ctx) - if err != nil { - return err - } + err = m.startBlocking(ctx) + if err != nil { + return err + } - err = m.wait(ctx) - if err != nil { - return err - } + readyChan <- ComponentsAreReady{} - err = m.shutdown(ctx) - if err != nil { - return err - } + err = m.wait(ctx) + if err != nil { + return err + } + + err = m.shutdown(ctx) + if err != nil { + return err + } + return nil + }() return nil }