diff options
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 0000000..dbc4b5f --- /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 |