# A TLS for the running event loop, used by _get_running_loop.
class _RunningLoop(threading.local):
- _loop = None
- _pid = None
+ loop_pid = (None, None)
_running_loop = _RunningLoop()
This is a low-level function intended to be used by event loops.
This function is thread-specific.
"""
- running_loop = _running_loop._loop
- if running_loop is not None and _running_loop._pid == os.getpid():
+ running_loop, pid = _running_loop.loop_pid
+ if running_loop is not None and pid == os.getpid():
return running_loop
This is a low-level function intended to be used by event loops.
This function is thread-specific.
"""
- _running_loop._pid = os.getpid()
- _running_loop._loop = loop
+ _running_loop.loop_pid = (loop, os.getpid())
def _init_event_loop_policy():