on main help sign in
fix: sync
commit4509fe77d6b718c19cfab4040a9db03637a86d15 authorCarlos Alexandro Becker <caarlos0@users.noreply.github.com> dateThu 24 Jul 2025, 16:30 (1 year ago) parenta4dee06
1 file changed+13−21
internal/config/init.go+13−21
internal/config/init.go+13−21
@@ -5,40 +5,32 @@ import (
55 "os"
66 "path/filepath"
77 "strings"
8− "sync"
8+ "sync/atomic"
99)
1010
11−const InitFlagFilename = "init"
11+const (
12+ InitFlagFilename = "init"
13+)
1214
1315type ProjectInitFlag struct {
1416 Initialized bool `json:"initialized"`
1517}
1618
1719// TODO: we need to remove the global config instance keeping it now just until everything is migrated
18−var (
19− instance *Config
20− cwd string
21− once sync.Once
22− wg sync.WaitGroup
23−)
20+var instance atomic.Pointer[Config]
2421
2522func Init(workingDir string, debug bool) (*Config, error) {
26− var err error
27− wg.Add(1)
28− once.Do(func() {
29− cwd = workingDir
30− var cfg *Config
31− cfg, err = Load(cwd, debug)
32− instance = cfg
33− wg.Done()
34− })
35−
36− return instance, err
23+ cfg, err := Load(workingDir, debug)
24+ if err != nil {
25+ return nil, err
26+ }
27+ instance.Store(cfg)
28+ return instance.Load(), nil
3729}
3830
3931func Get() *Config {
40− wg.Wait()
41− return instance
32+ cfg := instance.Load()
33+ return cfg
4234}
4335
4436func ProjectNeedsInitialization() (bool, error) {