Fix waiting group in client runner

Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
This commit is contained in:
Tom Chauveau 2021-08-20 18:39:12 +02:00
parent bfdb2e3655
commit 39ec4a0a2f
No known key found for this signature in database
GPG Key ID: 3C9847D981AAC1BF

View File

@ -104,8 +104,14 @@ func (c *Client) Do(ctx context.Context, state *state.State, fn DoFunc) error {
}
func (c *Client) buildfn(ctx context.Context, st *state.State, env *environment.Environment, fn DoFunc, ch chan *bk.SolveStatus) error {
wg := sync.WaitGroup{}
// Close output channel
defer close(ch)
defer func() {
// Wait until all the events are caught
wg.Wait()
close(ch)
}()
lg := log.Ctx(ctx)
@ -143,7 +149,6 @@ func (c *Client) buildfn(ctx context.Context, st *state.State, env *environment.
Interface("attrs", opts.FrontendAttrs).
Msg("spawning buildkit job")
wg := sync.WaitGroup{}
// Catch output from events
catchOutput := func(inCh chan *bk.SolveStatus) {
for e := range inCh {
@ -220,8 +225,6 @@ func (c *Client) buildfn(ctx context.Context, st *state.State, env *environment.
Msg("exporter response")
}
// Wait until all the events are caught
wg.Wait()
return nil
}