@@ -6,12 +6,9 @@ import (
66 "path/filepath"
77 "strings"
88 "sync"
9− "sync/atomic"
109)
1110
12−const (
13− InitFlagFilename = "init"
14−)
11+const InitFlagFilename = "init"
1512
1613type ProjectInitFlag struct {
1714 Initialized bool `json:"initialized"`
@@ -19,25 +16,29 @@ type ProjectInitFlag struct {
1916
2017// TODO: we need to remove the global config instance keeping it now just until everything is migrated
2118var (
22− instance atomic.Pointer[Config]
19+ instance *Config
2320 cwd string
24− once sync.Once // Ensures the initialization happens only once
21+ once sync.Once
22+ wg sync.WaitGroup
2523)
2624
2725func Init(workingDir string, debug bool) (*Config, error) {
2826 var err error
27+ wg.Add(1)
2928 once.Do(func() {
3029 cwd = workingDir
3130 var cfg *Config
3231 cfg, err = Load(cwd, debug)
33− instance.Store(cfg)
32+ instance = cfg
33+ wg.Done()
3434 })
3535
36− return instance.Load(), err
36+ return instance, err
3737}
3838
3939func Get() *Config {
40− return instance.Load()
40+ wg.Wait()
41+ return instance
4142}
4243
4344func ProjectNeedsInitialization() (bool, error) {