diff --git a/weaviate/connect/event_loop.py b/weaviate/connect/event_loop.py index 938cb2b56..664c73e50 100644 --- a/weaviate/connect/event_loop.py +++ b/weaviate/connect/event_loop.py @@ -69,16 +69,15 @@ def __run_event_loop(loop: asyncio.AbstractEventLoop) -> None: def __start_new_event_loop() -> asyncio.AbstractEventLoop: loop = asyncio.new_event_loop() - event_loop = threading.Thread( + threading.Thread( target=_EventLoop.__run_event_loop, daemon=True, args=(loop,), name="eventLoop", - ) - event_loop.start() + ).start() while not loop.is_running(): - time.sleep(0.01) + time.sleep(0.001) return loop @@ -99,13 +98,13 @@ def patch_exception_handler(loop: asyncio.AbstractEventLoop) -> None: """ def exception_handler(loop: asyncio.AbstractEventLoop, context: Dict[str, Any]) -> None: - if "exception" in context: - if type( - context["exception"] - ).__name__ == "BlockingIOError" and "Resource temporarily unavailable" in str( - context["exception"] - ): - return + exc = context.get("exception") + if ( + exc is not None + and type(exc).__name__ == "BlockingIOError" + and "Resource temporarily unavailable" in str(exc) + ): + return loop.default_exception_handler(context) loop.set_exception_handler(exception_handler)