Skip to content

Commit 9a0a2c4

Browse files
committed
Avoid DeprecationWarning with Gevent 1.0rc2 and later. PYTHON-545
1 parent 6974657 commit 9a0a2c4

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

pymongo/thread_util.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,13 @@
2525
have_gevent = True
2626
try:
2727
import greenlet
28-
import gevent.coros
28+
29+
try:
30+
# gevent-1.0rc2 and later.
31+
from gevent.lock import BoundedSemaphore as GeventBoundedSemaphore
32+
except ImportError:
33+
from gevent.coros import BoundedSemaphore as GeventBoundedSemaphore
34+
2935
except ImportError:
3036
have_gevent = False
3137

@@ -269,15 +275,15 @@ def __init__(self, value=1, max_waiters=1):
269275
class MaxWaitersBoundedSemaphoreGevent(MaxWaitersBoundedSemaphore):
270276
def __init__(self, value=1, max_waiters=1):
271277
MaxWaitersBoundedSemaphore.__init__(
272-
self, gevent.coros.BoundedSemaphore, value, max_waiters)
278+
self, GeventBoundedSemaphore, value, max_waiters)
273279

274280

275281
def create_semaphore(max_size, max_waiters, use_greenlets):
276282
if max_size is None:
277283
return DummySemaphore()
278284
elif use_greenlets:
279285
if max_waiters is None:
280-
return gevent.coros.BoundedSemaphore(max_size)
286+
return GeventBoundedSemaphore(max_size)
281287
else:
282288
return MaxWaitersBoundedSemaphoreGevent(max_size, max_waiters)
283289
else:

0 commit comments

Comments
 (0)