Shutdown the shared loop on process exit.
()
| 32 | |
| 33 | |
| 34 | def _shutdown_loop(): |
| 35 | """Shutdown the shared loop on process exit.""" |
| 36 | global _loop, _loop_thread |
| 37 | if _loop is not None and not _loop.is_closed() and _loop_thread is not None: |
| 38 | _loop.call_soon_threadsafe(_loop.stop) |
| 39 | _loop_thread.join(timeout=5) |
| 40 | _loop.close() |
| 41 | _loop = None |
| 42 | _loop_thread = None |
| 43 | |
| 44 | |
| 45 | def run_async(coro: Coroutine[None, None, T]) -> T: |