Pool.__init__(self, creator, **kw)
self._pool = self._queue_class(pool_size, use_lifo=use_lifo)
self._overflow = 0 - pool_size
- self._max_overflow = max_overflow
+ self._max_overflow = -1 if pool_size == 0 else max_overflow
self._timeout = timeout
self._overflow_lock = threading.Lock()
return self._pool.qsize()
def overflow(self) -> int:
- return self._overflow
+ return self._overflow if self._pool.maxsize else 0
def checkedout(self) -> int:
return self._pool.maxsize - self._pool.qsize() + self._overflow
def test_max_overflow(self):
self._test_overflow(40, 5)
+ @testing.combinations(42, 0, -5, 1)
+ def test_unlimited(self, max_overflow):
+ p = self._queuepool_fixture(pool_size=0, max_overflow=max_overflow)
+ eq_(p.overflow(), 0)
+ c1 = p.connect()
+ c2 = p.connect()
+ eq_(p.overflow(), 0)
+ c1.close()
+ c2.close()
+
def test_overflow_no_gc(self):
p = self._queuepool_fixture(pool_size=2, max_overflow=2)