core: Refine mutex during reloads (fix #5628) (#5645)

Separate currentCtxMu to protect currentCtx, and a new
rawCfgMu to protect rawCfg and synchronize loads.
This commit is contained in:
Matt Holt
2023-07-21 15:32:20 -06:00
committed by GitHub
parent f857b32d65
commit b51dc5d5d0
3 changed files with 42 additions and 20 deletions

View File

@ -441,6 +441,12 @@ func (ctx Context) App(name string) (any, error) {
// or stop App modules. The caller is expected to assert to the
// concrete type.
func (ctx Context) AppIfConfigured(name string) any {
if ctx.cfg == nil {
// this can happen if the currently-active context
// is being accessed, but no config has successfully
// been loaded yet
return nil
}
return ctx.cfg.apps[name]
}