Fix: deadlock for openvpn, dns and publicip loops

This commit is contained in:
Quentin McGaw (desktop)
2021-07-27 14:12:22 +00:00
parent 564cc2b0bc
commit b98f2456c0
3 changed files with 7 additions and 3 deletions

View File

@@ -22,15 +22,17 @@ func (s *State) GetSettings() (settings configuration.PublicIP) {
func (s *State) SetSettings(ctx context.Context, settings configuration.PublicIP) (
outcome string) {
s.settingsMu.Lock()
defer s.settingsMu.Unlock()
settingsUnchanged := reflect.DeepEqual(s.settings, settings)
if settingsUnchanged {
s.settingsMu.Unlock()
return "settings left unchanged"
}
periodChanged := s.settings.Period != settings.Period
s.settings = settings
s.settingsMu.Unlock()
if periodChanged {
s.updateTicker <- struct{}{}
// TODO blocking