]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
pool.close() called on del, idemptotent
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sun, 21 Feb 2021 03:48:03 +0000 (04:48 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Fri, 12 Mar 2021 04:07:25 +0000 (05:07 +0100)
psycopg3/psycopg3/pool.py

index 8c62faaa320c3d999f21a0cc7fb27f1ede3079a7..6b8aa28cf6ce6eac99937fdae9dc05fbc16214bc 100644 (file)
@@ -123,6 +123,9 @@ class ConnectionPool:
             f" {self.name!r} at 0x{id(self):x}>"
         )
 
+    def __del__(self) -> None:
+        self.close()
+
     @contextmanager
     def connection(
         self, timeout: Optional[float] = None
@@ -312,6 +315,9 @@ class ConnectionPool:
         with a `PoolClosed` exception. Currently used connections will not be
         closed until returned to the pool.
         """
+        if self._closed:
+            return
+
         with self._lock:
             self._closed = True