]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Force pool num_workers to be > 0
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 20 Feb 2021 00:19:35 +0000 (01:19 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Fri, 12 Mar 2021 04:07:25 +0000 (05:07 +0100)
it might work with num_workers = 0, however it's not trivial, there is
some deadlock to avoid at creation time.

psycopg3/psycopg3/pool.py
tests/test_pool.py

index 1e4fdc4bc34aa645955c7863ef567aeb7d648477..259ce26210ca9d5943a11cd91e32dd9fd9ac37d2 100644 (file)
@@ -56,6 +56,10 @@ class ConnectionPool:
             self.__class__._num_pool += 1
             name = f"pool-{self._num_pool}"
 
+        if num_workers < 1:
+            # TODO: allow num_workers to be 0 - sync pool?
+            raise ValueError("num_workers must be at least 1")
+
         self.conninfo = conninfo
         self.kwargs: Dict[str, Any] = kwargs or {}
         self._configure: Callable[[Connection], None]
index 72bb5c2b0ac4457747ecb6697815ee58fce55d5c..db50f85f9234c285c923ec94a0f8216f211bf0b0 100644 (file)
@@ -11,18 +11,18 @@ from psycopg3.pq import TransactionStatus
 
 
 def test_minconn_maxconn(dsn):
-    p = pool.ConnectionPool(dsn, num_workers=0)
+    p = pool.ConnectionPool(dsn)
     assert p.minconn == p.maxconn == 4
 
-    p = pool.ConnectionPool(dsn, minconn=2, num_workers=0)
+    p = pool.ConnectionPool(dsn, minconn=2)
     assert p.minconn == p.maxconn == 2
 
-    p = pool.ConnectionPool(dsn, minconn=2, maxconn=4, num_workers=0)
+    p = pool.ConnectionPool(dsn, minconn=2, maxconn=4)
     assert p.minconn == 2
     assert p.maxconn == 4
 
     with pytest.raises(ValueError):
-        pool.ConnectionPool(dsn, minconn=4, maxconn=2, num_workers=0)
+        pool.ConnectionPool(dsn, minconn=4, maxconn=2)
 
 
 def test_its_really_a_pool(dsn):