diff options
author | Yurii Karabas <1998uriyyo@gmail.com> | 2020-11-24 20:08:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-24 20:08:54 +0200 |
commit | 0ec34cab9dd4a7bcddafaeeb445fae0f26afcdd1 (patch) | |
tree | 89a37fba7519bd02dca2192e788bf8afe50aecdd /Lib/asyncio/mixins.py | |
parent | b0b428510cfd604a8eef1f245f039331e671ea4a (diff) | |
download | cpython-0ec34cab9dd4a7bcddafaeeb445fae0f26afcdd1.tar.gz cpython-0ec34cab9dd4a7bcddafaeeb445fae0f26afcdd1.zip |
bpo-42392: Remove loop parameter form asyncio locks and Queue (#23420)
Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
Diffstat (limited to 'Lib/asyncio/mixins.py')
-rw-r--r-- | Lib/asyncio/mixins.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Lib/asyncio/mixins.py b/Lib/asyncio/mixins.py new file mode 100644 index 00000000000..dbc4b5faccb --- /dev/null +++ b/Lib/asyncio/mixins.py @@ -0,0 +1,21 @@ +"""Event loop mixins.""" + +import threading +from . import events + +_global_lock = threading.Lock() + + +class _LoopBoundedMixin: + _loop = None + + def _get_loop(self): + loop = events._get_running_loop() + + if self._loop is None: + with _global_lock: + if self._loop is None: + self._loop = loop + if loop is not self._loop: + raise RuntimeError(f'{type(self).__name__} have already bounded to another loop') + return loop |