From 543fe081206c8b17180fb1e1ff114a442a6e6ffc Mon Sep 17 00:00:00 2001 From: Oleg Ovcharuk Date: Fri, 1 Nov 2024 18:15:52 +0300 Subject: [PATCH] Refactor aio tableclient destructor --- ydb/aio/table.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ydb/aio/table.py b/ydb/aio/table.py index 616eaee7..aec32e1a 100644 --- a/ydb/aio/table.py +++ b/ydb/aio/table.py @@ -154,10 +154,11 @@ def __init__(self, driver, table_client_settings=None): self._pool: Optional[SessionPool] = None def __del__(self): - try: - asyncio.get_running_loop().call_soon(self._stop_pool_if_needed) - except Exception: - pass + if self._pool is not None and not self._pool._terminating: + try: + asyncio.get_running_loop().create_task(self._stop_pool_if_needed()) + except Exception: + pass def session(self): return Session(self._driver, self._table_client_settings) @@ -185,6 +186,7 @@ def _init_pool_if_needed(self): async def _stop_pool_if_needed(self, timeout=10): if self._pool is not None and not self._pool._terminating: await self._pool.stop(timeout=timeout) + self._pool = None async def create_table( self,