From 9bce78d6401e58b506a926b96161efd7bab84863 Mon Sep 17 00:00:00 2001 From: Patrick Fuchs Date: Fri, 27 Mar 2026 19:13:06 +0100 Subject: [PATCH] fix race conditions --- config/config.go | 11 +++++++---- output/spinner.go | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/config/config.go b/config/config.go index d97f0bd4..ee5b35ca 100644 --- a/config/config.go +++ b/config/config.go @@ -94,12 +94,15 @@ func (c *Config) Validate() error { return nil } -// Default returns the default configuration. +// Default returns a *copy* of the default configuration. func Default() *Config { - return &Config{ - Emulators: DefaultEmulators, - Networks: DefaultNetworks, + cfg := &Config{ + Emulators: make(Emulators, len(DefaultEmulators)), + Networks: make(Networks, len(DefaultNetworks)), } + copy(cfg.Emulators, DefaultEmulators) + copy(cfg.Networks, DefaultNetworks) + return cfg } var ErrOutdatedFormat = errors.New("you are using old configuration format") diff --git a/output/spinner.go b/output/spinner.go index 6776657e..85d4d7d4 100644 --- a/output/spinner.go +++ b/output/spinner.go @@ -75,7 +75,9 @@ func (s *Spinner) run() { spinnerCharset[i%len(spinnerCharset)], s.suffix, ) + mu.Lock() _ = writer.Flush() + mu.Unlock() i++ } }