1
1
mirror of https://github.com/danbee/persephone synced 2025-03-04 08:39:11 +00:00

Fix a nasty deadlock

This commit is contained in:
Daniel Barber 2020-02-16 12:50:32 -05:00
parent cff3e7bfc6
commit 6236884195
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8

View File

@ -42,14 +42,16 @@ extension MPDClient {
func handleIdleResult(_ result: mpd_idle) { func handleIdleResult(_ result: mpd_idle) {
let mpdIdle = MPDIdle(rawValue: result.rawValue) let mpdIdle = MPDIdle(rawValue: result.rawValue)
let wasIdle: Bool
do { do {
idleLock.lock() idleLock.lock()
defer { idleLock.unlock() } defer { idleLock.unlock() }
wasIdle = isIdle
if isIdle {
isIdle = false isIdle = false
}
if wasIdle {
if mpdIdle.contains(.database) { if mpdIdle.contains(.database) {
self.fetchAllAlbums() self.fetchAllAlbums()
} }
@ -79,11 +81,9 @@ extension MPDClient {
self.delegate?.didFinishDatabaseUpdate(mpdClient: self) self.delegate?.didFinishDatabaseUpdate(mpdClient: self)
} }
} }
}
}
if !mpdIdle.isEmpty { if !mpdIdle.isEmpty {
self.idle() self.idle()
} }
} }
}
} }