Ok, thanks, once means once. So https://pkg.go.dev/sync/atomic#Value seems to be a better fit, do you agree?
burak serdar schrieb am Freitag, 22. November 2024 um 16:10:00 UTC+1: > On Fri, Nov 22, 2024 at 1:53 AM 'Hartmut Wieselburger' via golang-nuts > <golan...@googlegroups.com> wrote: > > > > var configOnce sync.Once > > func Reset() { > > configOnce = sync.Once{} > > } > > This is not resetting. You are creating a new sync.Once and assigning > that to a variable. That variable, configOnce, is shared among > multiple goroutines, because that is what Once is used for, to limit > the execution of a function called by multiple goroutines to a single > execution. The Reset function sets this shared variable without any > synchronization, so this is a data race. > > Also note that reassigning a Once instance like this may not behave as > you expect. Any goroutine that is waiting on that Once instance will > continue waiting until the Once function is done. The behavior of a > goroutine that reads Once after Reset() is undefined. Since there is a > data race, there is no guarantee on which instance of Once another > goroutine will see. A goroutine may see the completed instance of Once > even after you Reset() it. > > > > > func Load() *Config { > > configOnce.Do(func() { > > ... > > } > > > > burak serdar schrieb am Donnerstag, 21. November 2024 um 21:24:40 UTC+1: > >> > >> On Thu, Nov 21, 2024 at 1:14 PM 'Hartmut Wieselburger' via golang-nuts > >> <golan...@googlegroups.com> wrote: > >> > > >> > Hi, > >> > is there a way to reset sync.OnceValue(s), as you can do it with > sync.Once? > >> > >> How can you reset a sync.Once? > >> > >> > A common use case is loading a config. I would like to switch from > sync.Once to sync.OnceValue, but I need to a chance to reload my config, > without restarting my service. > >> > If this is possible with sync.OnceValue, please let me know. > Otherwise the new OnceValue(s) are useless for me. > >> > > >> > Regards, Harti > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > Groups "golang-nuts" group. > >> > To unsubscribe from this group and stop receiving emails from it, > send an email to golang-nuts...@googlegroups.com. > >> > To view this discussion visit > https://groups.google.com/d/msgid/golang-nuts/46b4a4ff-18cd-494a-9ac0-3a40cf2074e2n%40googlegroups.com > . > > > > -- > > You received this message because you are subscribed to the Google > Groups "golang-nuts" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to golang-nuts...@googlegroups.com. > > To view this discussion visit > https://groups.google.com/d/msgid/golang-nuts/f3df358a-d4ae-441c-9ff6-30af9ad1c568n%40googlegroups.com > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/0479f342-0b35-49b4-be81-c631bfe15900n%40googlegroups.com.