Make sure that LOCK is released after adding one element

- Partially fixes #446
This commit is contained in:
croneter 2018-03-31 20:34:09 +02:00
parent dcf2b9b4e4
commit c05b772e90

View file

@ -179,12 +179,14 @@ class PlayqueueMonitor(Thread):
elif identical:
LOG.debug('Detected playqueue item %s moved to position %s',
i + j, i)
with LOCK:
PL.move_playlist_item(playqueue, i + j, i)
del old[j], index[j]
break
else:
LOG.debug('Detected new Kodi element at position %s: %s ',
i, new_item)
with LOCK:
try:
if playqueue.id is None:
PL.init_Plex_playlist(playqueue, kodi_item=new_item)
@ -197,10 +199,10 @@ class PlayqueueMonitor(Thread):
pass
except IndexError:
# This is really a hack - happens when using Addon Paths
# and repeatedly starting the same element. Kodi will then
# not pass kodi id nor file path AND will also not
# start-up playback. Hence kodimonitor kicks off playback.
# Also see kodimonitor.py - _playlist_onadd()
# and repeatedly starting the same element. Kodi will
# then not pass kodi id nor file path AND will also not
# start-up playback. Hence kodimonitor kicks off
# playback. Also see kodimonitor.py - _playlist_onadd()
pass
else:
for j in range(i, len(index)):
@ -211,6 +213,7 @@ class PlayqueueMonitor(Thread):
# Kodi exit
return
LOG.debug('Detected deletion of playqueue element at pos %s', i)
with LOCK:
PL.delete_playlist_item_from_PMS(playqueue, i)
LOG.debug('Done comparing playqueues')
@ -223,7 +226,6 @@ class PlayqueueMonitor(Thread):
if stopped():
break
sleep(1000)
with LOCK:
for playqueue in PLAYQUEUES:
kodi_pl = js.playlist_get_items(playqueue.playlistid)
if playqueue.old_kodi_pl != kodi_pl: