Schedule the closure of the default executor and wait for it to join all of the threads in the ThreadPoolExecutor. Once this method has been called, using the default executor with loop.run_in_executor() will raise a RuntimeError.
asyncio/loop.shutdown_default_executor
loop.shutdown_default_executor