Re: [go-nuts] reset sync.OnceValue

2024-11-25 Thread burak serdar
You can switch an active configuration using atomic.Value, after initializing it with a Once. If your config is not initialized, atomic.Value will not block others. On Mon, Nov 25, 2024 at 1:05 AM 'Hartmut Wieselburger' via golang-nuts wrote: > > Ok, thanks, once means once. So https://pkg.go.dev

Re: [go-nuts] reset sync.OnceValue

2024-11-25 Thread 'Hartmut Wieselburger' via golang-nuts
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 > wrote: > > > > var configOnce sync.Once >

Re: [go-nuts] reset sync.OnceValue

2024-11-22 Thread burak serdar
On Fri, Nov 22, 2024 at 1:53 AM 'Hartmut Wieselburger' via golang-nuts 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

Re: [go-nuts] reset sync.OnceValue

2024-11-22 Thread Volker Dobler
var fOnce func() T func Reset() { fOnce = sync.OnceValue(your code here) } But as I said: Both is _wrong_. Really totally wrong. The OnceValue code should make this clear. Stop doing this. Redesign. V. On Friday, 22 November 2024 at 11:41:28 UTC+1 Hartmut Wieselburger wrote: > | You can do the sa

Re: [go-nuts] reset sync.OnceValue

2024-11-22 Thread 'Hartmut Wieselburger' via golang-nuts
| You can do the same with OnceValue Can you give an example? Volker Dobler schrieb am Freitag, 22. November 2024 um 11:32:41 UTC+1: > You can do the same with OnceValue, but neither is a good idea > as it totally invalidates what sync.Once is good for: preventing > data races which your "reset

Re: [go-nuts] reset sync.OnceValue

2024-11-22 Thread Volker Dobler
You can do the same with OnceValue, but neither is a good idea as it totally invalidates what sync.Once is good for: preventing data races which your "reset" (in quotation marks as you do not reset the sync.Once) provokes. V. On Friday, 22 November 2024 at 09:52:59 UTC+1 Hartmut Wieselburger wrot

Re: [go-nuts] reset sync.OnceValue

2024-11-22 Thread 'Hartmut Wieselburger' via golang-nuts
var configOnce sync.Once func Reset() { configOnce = sync.Once{} } 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 > wrote: > > > > Hi, > > is the

Re: [go-nuts] reset sync.OnceValue

2024-11-21 Thread burak serdar
On Thu, Nov 21, 2024 at 1:14 PM 'Hartmut Wieselburger' via golang-nuts 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,

[go-nuts] reset sync.OnceValue

2024-11-21 Thread 'Hartmut Wieselburger' via golang-nuts
Hi, is there a way to reset sync.OnceValue(s), as you can do it with 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, plea