From 8a4c9900658b566becf6b7b9df0705bc13074f03 Mon Sep 17 00:00:00 2001 From: Michael Schier Date: Tue, 23 Sep 2014 01:13:04 +1200 Subject: [PATCH] addressed maintainer comments --- elasticsearch/connection/pooling.py | 12 +++++++++--- elasticsearch/connection/thrift.py | 6 +++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/elasticsearch/connection/pooling.py b/elasticsearch/connection/pooling.py index 2c225aa1..284d062f 100644 --- a/elasticsearch/connection/pooling.py +++ b/elasticsearch/connection/pooling.py @@ -1,14 +1,20 @@ -from Queue import Queue +try: + import queue +except ImportError: + import Queue as queue from .base import Connection class PoolingConnection(Connection): def __init__(self, *args, **kwargs): - self._free_connections = Queue() + self._free_connections = queue.Queue() super(PoolingConnection, self).__init__(*args, **kwargs) def _get_connection(self): - return self._make_connection() if self._free_connections.empty() else self._free_connections.get() + try: + return self._free_connections.get_nowait() + except queue.Empty: + return self._make_connection() def _release_connection(self, con): self._free_connections.put(con) \ No newline at end of file diff --git a/elasticsearch/connection/thrift.py b/elasticsearch/connection/thrift.py index ff9bde02..f0d92b2a 100644 --- a/elasticsearch/connection/thrift.py +++ b/elasticsearch/connection/thrift.py @@ -65,9 +65,9 @@ class ThriftConnection(PoolingConnection): except (TException, SocketTimeout) as e: self.log_request_fail(method, url, body, time.time() - start, exception=e) raise ConnectionError('N/A', str(e), e) - - if tclient: - self._release_connection(tclient) + finally: + if tclient: + self._release_connection(tclient) if not (200 <= response.status < 300) and response.status not in ignore: self.log_request_fail(method, url, body, duration, response.status)