From 2e83244be42019998665a56a4a9402ff1a378745 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Tue, 16 Jan 2024 09:44:28 +0330 Subject: [PATCH] fix : use NavaThread instead of Thread --- nava/__init__.py | 7 +++---- nava/functions.py | 10 +++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/nava/__init__.py b/nava/__init__.py index 6ed050a..99732e6 100644 --- a/nava/__init__.py +++ b/nava/__init__.py @@ -2,10 +2,9 @@ """Nava modules.""" from .params import NAVA_VERSION from .errors import NavaBaseError -from .functions import play, cleanup_processes - +from .functions import play, stop, stop_all import atexit -# Async play processes clean up -atexit.register(cleanup_processes) + +atexit.register(stop_all) __version__ = NAVA_VERSION diff --git a/nava/functions.py b/nava/functions.py index d63b96e..38bca1e 100644 --- a/nava/functions.py +++ b/nava/functions.py @@ -5,7 +5,7 @@ import os import shlex from functools import wraps -import threading +from .thread import NavaThread from .params import OVERVIEW from .params import SOUND_FILE_PLAY_ERROR, SOUND_FILE_EXIST_ERROR from .params import SOUND_FILE_PATH_TYPE_ERROR @@ -18,7 +18,7 @@ def stop(sound_id): def stop_all(): for thread in params._play_threads_map.values(): thread.stop() - + def sound_id_gen(): params._play_threads_counter +=1 sound_id = params._play_threads_counter + 1000 @@ -84,7 +84,7 @@ def __play_win(sound_path, is_async=True): play_flags = winsound.SND_FILENAME | (is_async & winsound.SND_ASYNC) if is_async: - sound_thread = threading.Thread(target=__play_win_by_flags, + sound_thread = NavaThread(target=__play_win_by_flags, args=(sound_path, play_flags), daemon=True) sound_thread.start() @@ -121,7 +121,7 @@ def __play_linux(sound_path, is_async=True): :return: None or sound thread (depending on async flag) """ if is_async: - sound_thread = threading.Thread(target=__play_sync_linux, + sound_thread = NavaThread(target=__play_sync_linux, args=(sound_path,), daemon=True) sound_thread.start() @@ -162,7 +162,7 @@ def __play_mac(sound_path, is_async=True): :return: None or sound thread, depending on the flag """ if is_async: - sound_thread = threading.Thread(target=__play_sync_mac, + sound_thread = NavaThread(target=__play_sync_mac, args=(sound_path,), daemon=True) sound_thread.start()