Update methods of ThreadedConnectionPool

Updated methods of the ThreadedConnectionPool class to
use the elegant context manager syntax.
This commit is contained in:
Shubham Sharma 2021-09-21 22:46:30 +05:30
parent e9a62bf418
commit 766f06f290

View File

@ -173,7 +173,7 @@ class ThreadedConnectionPool(AbstractConnectionPool):
Usually these are passed to the underlying ``connect`` method Usually these are passed to the underlying ``connect`` method
of psycopg2 of psycopg2
""" """
import threading import threading
AbstractConnectionPool.__init__( AbstractConnectionPool.__init__(
self, minconn, maxconn, *args, **kwargs) self, minconn, maxconn, *args, **kwargs)
@ -181,24 +181,15 @@ class ThreadedConnectionPool(AbstractConnectionPool):
def getconn(self, key=None): def getconn(self, key=None):
"""Get a free connection and assign it to 'key' if not None.""" """Get a free connection and assign it to 'key' if not None."""
self._lock.acquire() with self._lock:
try:
return self._getconn(key) return self._getconn(key)
finally:
self._lock.release()
def putconn(self, conn=None, key=None, close=False): def putconn(self, conn=None, key=None, close=False):
"""Put away an unused connection.""" """Put away an unused connection."""
self._lock.acquire() with self._lock:
try:
self._putconn(conn, key, close) self._putconn(conn, key, close)
finally:
self._lock.release()
def closeall(self): def closeall(self):
"""Close all connections (even the one currently in use.)""" """Close all connections (even the one currently in use.)"""
self._lock.acquire() with self._lock:
try:
self._closeall() self._closeall()
finally:
self._lock.release()