From f21b5ec4ef54a0923311014e4af50f5804fcf49c Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 2 Nov 2020 15:29:38 -0500 Subject: [PATCH] Ensure AsyncAdaptedLock is present whether or not greenlet is installed Change-Id: Icd1c5ef3a01ec0d1b8dce0d1def9920700923e51 --- lib/sqlalchemy/util/_concurrency_py3k.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/sqlalchemy/util/_concurrency_py3k.py b/lib/sqlalchemy/util/_concurrency_py3k.py index 82125b7713..ee3abe5fa9 100644 --- a/lib/sqlalchemy/util/_concurrency_py3k.py +++ b/lib/sqlalchemy/util/_concurrency_py3k.py @@ -96,17 +96,6 @@ try: del context.driver return result - class AsyncAdaptedLock: - def __init__(self): - self.mutex = asyncio.Lock() - - def __enter__(self): - await_fallback(self.mutex.acquire()) - return self - - def __exit__(self, *arg, **kw): - self.mutex.release() - except ImportError: # pragma: no cover greenlet = None @@ -119,3 +108,15 @@ except ImportError: # pragma: no cover async def greenlet_spawn(fn, *args, **kw): raise ValueError("Greenlet is required to use this function") + + +class AsyncAdaptedLock: + def __init__(self): + self.mutex = asyncio.Lock() + + def __enter__(self): + await_fallback(self.mutex.acquire()) + return self + + def __exit__(self, *arg, **kw): + self.mutex.release() -- 2.39.5