From 3c5183959ba6efe94a042804153ce4d702857130 Mon Sep 17 00:00:00 2001 From: Cat <24483290+TheSpookyCat@users.noreply.github.com> Date: Thu, 25 May 2023 16:40:34 +0100 Subject: [PATCH] get_event_loop() fixes - Obeys event loop policy - Consistent on multiple platforms --- pypresence/utils.py | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/pypresence/utils.py b/pypresence/utils.py index dbd3604..31e00a8 100644 --- a/pypresence/utils.py +++ b/pypresence/utils.py @@ -45,20 +45,12 @@ def get_ipc_path(pipe=None): def get_event_loop(force_fresh=False): - if sys.platform in ('linux', 'darwin'): - if force_fresh: - return asyncio.new_event_loop() - try: - loop = asyncio.get_running_loop() - except RuntimeError: - return asyncio.new_event_loop() - if loop.is_closed(): - return asyncio.new_event_loop() - return loop - elif sys.platform == 'win32': - if force_fresh: - return asyncio.ProactorEventLoop() - loop = asyncio.get_event_loop() - if isinstance(loop, asyncio.ProactorEventLoop) and not loop.is_closed(): - return loop - return asyncio.ProactorEventLoop() + if force_fresh: + return asyncio.new_event_loop() + try: + running = asyncio.get_running_loop() + except RuntimeError: + return asyncio.new_event_loop() + if running.is_closed(): + return asyncio.new_event_loop() + return running