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:
parent
cff3e7bfc6
commit
6236884195
@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user