import threading
from typing import Any, Callable, Coroutine, TypeVar
+from typing_extensions import TypeAlias
+
logger = logging.getLogger("psycopg.pool")
T = TypeVar("T")
Lock = threading.RLock
ALock = asyncio.Lock
+Worker: TypeAlias = threading.Thread
+AWorker: TypeAlias = asyncio.Task[None]
+
def current_thread_name() -> str:
return threading.current_thread().name
from __future__ import annotations
import logging
-import threading
from abc import ABC, abstractmethod
from time import monotonic
from types import TracebackType
from .sched import Scheduler
from .errors import PoolClosed, PoolTimeout, TooManyRequests
from ._compat import Deque
-from ._acompat import Condition, Event, Lock, Queue, spawn, gather
+from ._acompat import Condition, Event, Lock, Queue, Worker, spawn, gather
from ._acompat import current_thread_name
logger = logging.getLogger("psycopg.pool")
# to notify that the pool is full
self._pool_full_event: Optional[Event] = None
- self._sched_runner: Optional[threading.Thread] = None
- self._workers: List[threading.Thread] = []
+ self._sched_runner: Optional[Worker] = None
+ self._workers: List[Worker] = []
super().__init__(
conninfo,
from types import TracebackType
from typing import Any, AsyncIterator, cast, Generic
from typing import Dict, List, Optional, overload, Sequence, Type, TypeVar
-from asyncio import Task
from weakref import ref
from contextlib import asynccontextmanager
from .base import ConnectionAttempt, BasePool
from .errors import PoolClosed, PoolTimeout, TooManyRequests
from ._compat import Deque
-from ._acompat import ACondition, AEvent, ALock, AQueue, aspawn, agather
+from ._acompat import ACondition, AEvent, ALock, AQueue, AWorker, aspawn, agather
from ._acompat import current_task_name
from .sched_async import AsyncScheduler
# to notify that the pool is full
self._pool_full_event: Optional[AEvent] = None
- self._sched_runner: Optional[Task[None]] = None
- self._workers: List[Task[None]] = []
+ self._sched_runner: Optional[AWorker] = None
+ self._workers: List[AWorker] = []
super().__init__(
conninfo,