25 lines
363 B
Go
25 lines
363 B
Go
package settings
|
|
|
|
import "sync"
|
|
|
|
type Runtime struct {
|
|
mu sync.RWMutex
|
|
current Settings
|
|
}
|
|
|
|
func NewRuntime(initial Settings) *Runtime {
|
|
return &Runtime{current: initial}
|
|
}
|
|
|
|
func (r *Runtime) Get() Settings {
|
|
r.mu.RLock()
|
|
defer r.mu.RUnlock()
|
|
return r.current
|
|
}
|
|
|
|
func (r *Runtime) Update(next Settings) {
|
|
r.mu.Lock()
|
|
r.current = next
|
|
r.mu.Unlock()
|
|
}
|