From eafadad610d34bba24bd802943a7e2633cee6b29 Mon Sep 17 00:00:00 2001 From: Conatum Date: Thu, 8 Jun 2023 21:03:48 +0300 Subject: [PATCH] fix (timers): Voice event task creation. --- src/modules/pomodoro/cog.py | 8 ++++---- src/modules/pomodoro/timer.py | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/modules/pomodoro/cog.py b/src/modules/pomodoro/cog.py index 387ee853..3ef6a24a 100644 --- a/src/modules/pomodoro/cog.py +++ b/src/modules/pomodoro/cog.py @@ -184,14 +184,14 @@ class TimerCog(LionCog): joining = self.get_channel_timer(after.channel.id) if after.channel else None tasks = [] - if leaving: - tasks.append(leaving.update_status_card()) + if leaving is not None: + tasks.append(asyncio.create_task(leaving.update_status_card())) if joining is not None: joining.last_seen[member.id] = utc_now() if not joining.running and joining.auto_restart: - tasks.append(joining.start()) + tasks.append(asyncio.create_task(joining.start())) else: - tasks.append(joining.update_status_card()) + tasks.append(asyncio.create_task(joining.update_status_card())) if tasks: try: diff --git a/src/modules/pomodoro/timer.py b/src/modules/pomodoro/timer.py index 25977420..2e4fd9fd 100644 --- a/src/modules/pomodoro/timer.py +++ b/src/modules/pomodoro/timer.py @@ -447,6 +447,7 @@ class Timer: with open(alert_file, 'rb') as audio_stream: finished = asyncio.Event() + loop = asyncio.get_event_loop() def voice_callback(error): if error: @@ -456,7 +457,7 @@ class Timer: logger.exception( f"Callback exception occured while playing voice alert for timer {self!r}" ) - finished.set() + loop.call_soon_threadsafe(finished.set) voice_client.play(discord.PCMAudio(audio_stream), after=voice_callback)