From d38b0e1c4716363a2ee79199d9afaf930fed29d9 Mon Sep 17 00:00:00 2001 From: "A. Jesse Jiryu Davis" Date: Wed, 9 Oct 2013 13:37:58 -0400 Subject: [PATCH] Fix AttributeError in __del__ for Pool(use_greenlets=True) when Gevent is not installed. PYTHON-561 --- pymongo/pool.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pymongo/pool.py b/pymongo/pool.py index 9e235c239..54eb9e584 100644 --- a/pymongo/pool.py +++ b/pymongo/pool.py @@ -141,12 +141,6 @@ class Pool: # Can override for testing: 0 to always check, None to never check. self._check_interval_seconds = 1 - if use_greenlets and not thread_util.have_gevent: - raise ConfigurationError( - "The Gevent module is not available. " - "Install the gevent package from PyPI." - ) - self.sockets = set() self.lock = threading.Lock() @@ -169,11 +163,17 @@ class Pool: if HAS_SSL and use_ssl and not ssl_cert_reqs: self.ssl_cert_reqs = ssl.CERT_NONE - self._ident = thread_util.create_ident(use_greenlets) - # Map self._ident.get() -> request socket self._tid_to_sock = {} + if use_greenlets and not thread_util.have_gevent: + raise ConfigurationError( + "The Gevent module is not available. " + "Install the gevent package from PyPI." + ) + + self._ident = thread_util.create_ident(use_greenlets) + # Count the number of calls to start_request() per thread or greenlet self._request_counter = thread_util.Counter(use_greenlets)