fix ticker leak

Signed-off-by: rokkiter <yongen.pan@daocloud.io>
This commit is contained in:
rokkiter 2023-11-16 18:12:58 +08:00
parent 1a54a217ca
commit 1b65fe2646

View File

@ -117,25 +117,21 @@ func (w *criWorker) runSandbox(tctx, ctx context.Context, id string) (err error)
// verify it is running ? // verify it is running ?
ticker := time.NewTicker(250 * time.Millisecond) ticker := time.NewTicker(250 * time.Millisecond)
quit := make(chan struct{})
go func() { go func() {
for { for {
select { select {
case <-tctx.Done(): case <-tctx.Done():
close(quit) ticker.Stop()
return return
case <-ticker.C: case <-ticker.C:
// do stuff // do stuff
status, err := w.client.PodSandboxStatus(sb) status, err := w.client.PodSandboxStatus(sb)
if err != nil && status.GetState() == runtime.PodSandboxState_SANDBOX_READY { if err != nil && status.GetState() == runtime.PodSandboxState_SANDBOX_READY {
close(quit)
return
}
case <-quit:
ticker.Stop() ticker.Stop()
return return
} }
} }
}
}() }()
return nil return nil