From 660a8baac973b1cfaf5dc460c3ae30c08668895e Mon Sep 17 00:00:00 2001 From: Ben Bangert Date: Tue, 22 Apr 2014 09:47:07 -0700 Subject: [PATCH] - Change gevent import to remove deprecation warning when newer gevent is used. PR #191, patch by Hiroaki Kawai. --- CHANGES.rst | 2 ++ kazoo/handlers/gevent.py | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 09ae676e..5ed32956 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -21,6 +21,8 @@ Features Bug Handling ************ +- Change gevent import to remove deprecation warning when newer gevent is + used. PR #191, patch by Hiroaki Kawai. - Lock recipe was failing to use the client's sleep_func causing issues with gevent. Issue #150. - Calling a DataWatch or ChildrenWatch instance twice (decorator) now throws diff --git a/kazoo/handlers/gevent.py b/kazoo/handlers/gevent.py index 7593ed68..6e40caea 100644 --- a/kazoo/handlers/gevent.py +++ b/kazoo/handlers/gevent.py @@ -5,7 +5,6 @@ import logging import gevent -import gevent.coros import gevent.event import gevent.queue import gevent.select @@ -14,6 +13,10 @@ from gevent.queue import Empty from gevent.queue import Queue from gevent import socket +try: + from gevent.lock import Semaphore, RLock +except ImportError: + from gevent.coros import Semaphore, RLock from kazoo.handlers.utils import create_tcp_socket, create_tcp_connection @@ -54,7 +57,7 @@ def __init__(self): self.callback_queue = Queue() self._running = False self._async = None - self._state_change = gevent.coros.Semaphore() + self._state_change = Semaphore() self._workers = [] class timeout_exception(gevent.event.Timeout): @@ -131,7 +134,7 @@ def lock_object(self): def rlock_object(self): """Create an appropriate RLock object""" - return gevent.coros.RLock() + return RLock() def async_result(self): """Create a :class:`AsyncResult` instance