From: Daniele Varrazzo Date: Fri, 6 Oct 2023 15:04:42 +0000 (+0200) Subject: refactor(pool): don't use a no-op function as reconnect callback X-Git-Tag: pool-3.2.0~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a327a0eae1fd71b2ce4cb5dd475f7f059d6ceada;p=thirdparty%2Fpsycopg.git refactor(pool): don't use a no-op function as reconnect callback Just check for None. --- diff --git a/psycopg_pool/psycopg_pool/pool.py b/psycopg_pool/psycopg_pool/pool.py index ff8c4706e..fca93724b 100644 --- a/psycopg_pool/psycopg_pool/pool.py +++ b/psycopg_pool/psycopg_pool/pool.py @@ -106,8 +106,7 @@ class ConnectionPool(Generic[CT], BasePool): self._configure = configure self._reset = reset - self._reconnect_failed: ConnectFailedCB - self._reconnect_failed = reconnect_failed or (lambda pool: None) + self._reconnect_failed = reconnect_failed self._lock = threading.RLock() self._waiting = Deque["WaitingClient[CT]"]() @@ -510,6 +509,9 @@ class ConnectionPool(Generic[CT], BasePool): """ Called when reconnection failed for longer than `reconnect_timeout`. """ + if not self._reconnect_failed: + return + self._reconnect_failed(self) def run_task(self, task: "MaintenanceTask") -> None: diff --git a/psycopg_pool/psycopg_pool/pool_async.py b/psycopg_pool/psycopg_pool/pool_async.py index 57eddd0b9..90a7abb02 100644 --- a/psycopg_pool/psycopg_pool/pool_async.py +++ b/psycopg_pool/psycopg_pool/pool_async.py @@ -109,8 +109,7 @@ class AsyncConnectionPool(Generic[ACT], BasePool): self._configure = configure self._reset = reset - self._reconnect_failed: AsyncConnectFailedCB - self._reconnect_failed = reconnect_failed or (lambda pool: None) + self._reconnect_failed = reconnect_failed # asyncio objects, created on open to attach them to the right loop. self._lock: asyncio.Lock @@ -448,6 +447,9 @@ class AsyncConnectionPool(Generic[ACT], BasePool): """ Called when reconnection failed for longer than `reconnect_timeout`. """ + if not self._reconnect_failed: + return + if asyncio.iscoroutinefunction(self._reconnect_failed): await self._reconnect_failed(self) else: