Add wait group for graceful shutdown, closes #302

Signed-off-by: Petu Eusebiu <peusebiu@cisco.com>
This commit is contained in:
Petu Eusebiu
2021-12-02 19:45:26 +02:00
committed by Ramkumar Chinchani
parent f011192615
commit 627cb97ef1
8 changed files with 68 additions and 105 deletions
+7 -1
View File
@@ -12,6 +12,7 @@ import (
"path"
"regexp"
"strings"
goSync "sync"
"time"
"github.com/Masterminds/semver"
@@ -438,7 +439,7 @@ func getLocalContexts(log log.Logger) (*types.SystemContext, *signature.PolicyCo
return localCtx, policyContext, nil
}
func Run(cfg Config, storeController storage.StoreController, logger log.Logger) error {
func Run(cfg Config, storeController storage.StoreController, wg *goSync.WaitGroup, logger log.Logger) error {
var credentialsFile CredentialsFile
var err error
@@ -468,6 +469,9 @@ func Run(cfg Config, storeController storage.StoreController, logger log.Logger)
continue
}
// increment reference since will be busy, so shutdown has to wait
wg.Add(1)
// schedule each registry sync
ticker := time.NewTicker(regCfg.PollInterval)
@@ -484,6 +488,8 @@ func Run(cfg Config, storeController storage.StoreController, logger log.Logger)
l.Error().Err(err).Msg("sync exited with error, stopping it...")
ticker.Stop()
}
// mark as done after a single sync run
wg.Done()
}
}(regCfg, l)
}