lib/model: Less locking in ClusterConfig (#5943)

This commit is contained in:
Simon Frei 2019-08-11 19:30:24 +02:00 committed by Jakob Borg
parent 720a6bf62e
commit 86e35f1879

View File

@ -1062,8 +1062,7 @@ func (m *model) ClusterConfig(deviceID protocol.DeviceID, cm protocol.ClusterCon
} }
} }
m.fmut.Lock() m.fmut.RLock()
defer m.fmut.Unlock()
var paused []string var paused []string
for _, folder := range cm.Folders { for _, folder := range cm.Folders {
cfg, ok := m.cfg.Folder(folder.ID) cfg, ok := m.cfg.Folder(folder.ID)
@ -1184,6 +1183,7 @@ func (m *model) ClusterConfig(deviceID protocol.DeviceID, cm protocol.ClusterCon
// implementing suture.IsCompletable). // implementing suture.IsCompletable).
m.Add(is) m.Add(is)
} }
m.fmut.RUnlock()
m.pmut.Lock() m.pmut.Lock()
m.remotePausedFolders[deviceID] = paused m.remotePausedFolders[deviceID] = paused