diff --git a/core/__init__.py b/core/__init__.py index 7f4a185d..ccf1b26e 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -24,6 +24,10 @@ class nested_dict_sqlite(defaultdict): self[key] = value = self.default_factory(key) return value + def close(self): + for key in self.keys(): + self[key].close() + db_name = filetools.join(config.get_data_path(), "db.sqlite") db = nested_dict_sqlite(lambda table: SqliteDict(db_name, table, 'c', True)) diff --git a/platformcode/launcher.py b/platformcode/launcher.py index dc953b47..c4dbccda 100644 --- a/platformcode/launcher.py +++ b/platformcode/launcher.py @@ -343,6 +343,10 @@ def run(item=None): if platformtools.dialog_yesno(config.get_localized_string(60038), config.get_localized_string(60015)): run(Item(channel="setting", action="report_menu")) + # close db to ensure his thread will stop + from core import db + db.close() + def new_search(item, channel=None): itemlist=[] diff --git a/platformcode/platformtools.py b/platformcode/platformtools.py index f03fbd4a..65112d89 100644 --- a/platformcode/platformtools.py +++ b/platformcode/platformtools.py @@ -673,11 +673,11 @@ def play_video(item, strm=False, force_direct=False, autoplay=False): # Open the selection dialog to see the available options opciones, video_urls, seleccion, salir = get_dialogo_opciones(item, default_action, strm, autoplay) - if salir: exit() + if salir: return # get default option of addon configuration seleccion = get_seleccion(default_action, opciones, seleccion, video_urls) - if seleccion < 0: exit() # Canceled box + if seleccion < 0: return # Canceled box logger.debug("selection=%d" % seleccion) logger.debug("selection=%s" % opciones[seleccion])