From bc8ac6fd22ef7a1af4035122098ed9203b8603fc Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Sat, 6 Sep 2025 02:21:22 +0200 Subject: [PATCH] refactor: introduce ALock/Lock in acompat --- psycopg/psycopg/_acompat.py | 3 +++ psycopg/psycopg/connection.py | 2 +- psycopg/psycopg/connection_async.py | 8 +++----- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/psycopg/psycopg/_acompat.py b/psycopg/psycopg/_acompat.py index 3511e0e7b..bfbe6cd61 100644 --- a/psycopg/psycopg/_acompat.py +++ b/psycopg/psycopg/_acompat.py @@ -20,6 +20,9 @@ from ._compat import TypeVar Worker: TypeAlias = threading.Thread AWorker: TypeAlias = asyncio.Task[None] +Lock = threading.Lock +ALock = asyncio.Lock + T = TypeVar("T") diff --git a/psycopg/psycopg/connection.py b/psycopg/psycopg/connection.py index bb39c5460..338665276 100644 --- a/psycopg/psycopg/connection.py +++ b/psycopg/psycopg/connection.py @@ -13,7 +13,6 @@ import logging from time import monotonic from types import TracebackType from typing import TYPE_CHECKING, Any, cast, overload -from threading import Lock from contextlib import contextmanager from collections.abc import Generator, Iterator @@ -26,6 +25,7 @@ from .adapt import AdaptersMap from ._enums import IsolationLevel from .cursor import Cursor from ._compat import Self +from ._acompat import Lock from .conninfo import conninfo_attempts, conninfo_to_dict, make_conninfo from .conninfo import timeout_from_conninfo from ._pipeline import Pipeline diff --git a/psycopg/psycopg/connection_async.py b/psycopg/psycopg/connection_async.py index d37de7c73..d78775093 100644 --- a/psycopg/psycopg/connection_async.py +++ b/psycopg/psycopg/connection_async.py @@ -21,6 +21,7 @@ from .rows import AsyncRowFactory, Row, args_row, tuple_row from .adapt import AdaptersMap from ._enums import IsolationLevel from ._compat import Self +from ._acompat import ALock from .conninfo import conninfo_attempts_async, conninfo_to_dict, make_conninfo from .conninfo import timeout_from_conninfo from ._pipeline import AsyncPipeline @@ -34,9 +35,6 @@ from ._server_cursor_async import AsyncServerCursor if True: # ASYNC import sys import asyncio - from asyncio import Lock, to_thread -else: - from threading import Lock if TYPE_CHECKING: from .pq.abc import PGconn @@ -77,7 +75,7 @@ class AsyncConnection(BaseConnection[Row]): ): super().__init__(pgconn) self.row_factory = row_factory - self.lock = Lock() + self.lock = ALock() self.cursor_factory = AsyncCursor self.server_cursor_factory = AsyncServerCursor @@ -311,7 +309,7 @@ class AsyncConnection(BaseConnection[Row]): ) else: if True: # ASYNC - await to_thread(self.cancel) + await asyncio.to_thread(self.cancel) else: self.cancel() -- 2.47.3