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
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
>
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
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
| 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
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
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
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,
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