From 4509fe77d6b718c19cfab4040a9db03637a86d15 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Thu, 24 Jul 2025 16:30:50 -0300 Subject: [PATCH] fix: sync --- internal/config/init.go | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/internal/config/init.go b/internal/config/init.go index 3a4194afdefb7bb1d0c95bd41a837dced15e9433..ff44d43bb878f579d003c84537fcd970f9e52f9e 100644 --- a/internal/config/init.go +++ b/internal/config/init.go @@ -5,40 +5,32 @@ import ( "os" "path/filepath" "strings" - "sync" + "sync/atomic" ) -const InitFlagFilename = "init" +const ( + InitFlagFilename = "init" +) type ProjectInitFlag struct { Initialized bool `json:"initialized"` } // TODO: we need to remove the global config instance keeping it now just until everything is migrated -var ( - instance *Config - cwd string - once sync.Once - wg sync.WaitGroup -) +var instance atomic.Pointer[Config] func Init(workingDir string, debug bool) (*Config, error) { - var err error - wg.Add(1) - once.Do(func() { - cwd = workingDir - var cfg *Config - cfg, err = Load(cwd, debug) - instance = cfg - wg.Done() - }) - - return instance, err + cfg, err := Load(workingDir, debug) + if err != nil { + return nil, err + } + instance.Store(cfg) + return instance.Load(), nil } func Get() *Config { - wg.Wait() - return instance + cfg := instance.Load() + return cfg } func ProjectNeedsInitialization() (bool, error) {