diff --git a/platypush/plugins/media/vlc.py b/platypush/plugins/media/vlc.py index 0c313984..08dc0338 100644 --- a/platypush/plugins/media/vlc.py +++ b/platypush/plugins/media/vlc.py @@ -51,6 +51,7 @@ class MediaVlcPlugin(MediaPlugin): self._filename = None self._monitor_thread: Optional[threading.Thread] = None self._on_stop_event = threading.Event() + self._stop_lock = threading.RLock() @classmethod def _watched_event_types(cls): @@ -93,20 +94,21 @@ class MediaVlcPlugin(MediaPlugin): self._reset_state() def _reset_state(self): - self._latest_seek = None - self._title = None - self._filename = None - self._on_stop_event.clear() + with self._stop_lock: + self._latest_seek = None + self._title = None + self._filename = None + self._on_stop_event.clear() - if self._player: - self.logger.info('Releasing VLC player resource') - self._player.release() - self._player = None + if self._player: + self.logger.info('Releasing VLC player resource') + self._player.release() + self._player = None - if self._instance: - self.logger.info('Releasing VLC instance resource') - self._instance.release() - self._instance = None + if self._instance: + self.logger.info('Releasing VLC instance resource') + self._instance.release() + self._instance = None @staticmethod def _post_event(evt_type, **evt):