xref: /third_party/python/Lib/asyncio/mixins.py
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/python/Lib/asyncio/
17db96d56Sopenharmony_ci"""Event loop mixins."""
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ciimport threading
47db96d56Sopenharmony_cifrom . import events
57db96d56Sopenharmony_ci
67db96d56Sopenharmony_ci_global_lock = threading.Lock()
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ciclass _LoopBoundMixin:
107db96d56Sopenharmony_ci    _loop = None
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci    def _get_loop(self):
137db96d56Sopenharmony_ci        loop = events._get_running_loop()
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ci        if self._loop is None:
167db96d56Sopenharmony_ci            with _global_lock:
177db96d56Sopenharmony_ci                if self._loop is None:
187db96d56Sopenharmony_ci                    self._loop = loop
197db96d56Sopenharmony_ci        if loop is not self._loop:
207db96d56Sopenharmony_ci            raise RuntimeError(f'{self!r} is bound to a different event loop')
217db96d56Sopenharmony_ci        return loop
22

Indexes created Thu Nov 07 10:32:03 CST 2024