diff --git a/django_db_geventpool/backends/postgresql_psycopg2/psycopg2_pool.py b/django_db_geventpool/backends/postgresql_psycopg2/psycopg2_pool.py index 13df989..1d8568f 100755 --- a/django_db_geventpool/backends/postgresql_psycopg2/psycopg2_pool.py +++ b/django_db_geventpool/backends/postgresql_psycopg2/psycopg2_pool.py @@ -14,10 +14,7 @@ from gevent.lock import RLock except ImportError: from eventlet import queue - from ...utils import nullcontext - - def RLock(): - return nullcontext + from ...utils import NullContextRLock as RLock try: from psycopg2 import connect, DatabaseError diff --git a/django_db_geventpool/utils.py b/django_db_geventpool/utils.py index 555ff9f..d3c4459 100644 --- a/django_db_geventpool/utils.py +++ b/django_db_geventpool/utils.py @@ -16,6 +16,12 @@ def wrapper(*args, **kwargs): return wrapper -@contextmanager -def nullcontext(enter_result=None): - yield enter_result +class NullContextRLock: + def __init__(self, enter_result=None): + self._enter_result = enter_result + + def __enter__(self): + return self._enter_result + + def __exit__(self, exc_type, exc_val, exc_tb): + return None