Parcourir la source

lib/model: Release both locks when waiting for services to stop (fixes #5028)

Simon Frei il y a 7 ans
Parent
commit
7b0d8c2e77
1 fichiers modifiés avec 2 ajouts et 0 suppressions
  1. 2 0
      lib/model/model.go

+ 2 - 0
lib/model/model.go

@@ -344,11 +344,13 @@ func (m *Model) tearDownFolderLocked(cfg config.FolderConfiguration) {
 	// Stop the services running for this folder and wait for them to finish
 	// stopping to prevent races on restart.
 	tokens := m.folderRunnerTokens[cfg.ID]
+	m.pmut.Unlock()
 	m.fmut.Unlock()
 	for _, id := range tokens {
 		m.RemoveAndWait(id, 0)
 	}
 	m.fmut.Lock()
+	m.pmut.Lock()
 
 	// Close connections to affected devices
 	for _, dev := range cfg.Devices {