1
0
Fork 0

more logging around shutdown, close queues

This commit is contained in:
Sean Sube 2023-02-27 23:01:26 -06:00
parent 988088d64e
commit da6ae5d62f
Signed by: ssube
GPG Key ID: 3EED7B957D362AF1
2 changed files with 22 additions and 3 deletions

View File

@ -59,7 +59,12 @@ def main():
def run():
app, pool = main()
atexit.register(lambda: pool.join())
def quit():
logger.info("shutting down workers")
pool.join()
atexit.register(quit)
return app

View File

@ -213,15 +213,29 @@ class DevicePoolExecutor:
return (False, progress)
def join(self):
logger.debug("stopping worker pool")
for device, worker in self.workers.items():
if worker.is_alive():
logger.info("stopping worker for device %s", device)
logger.debug("stopping worker for device %s", device)
worker.join(self.join_timeout)
else:
logger.debug("worker for device %s has died", device)
for name, thread in self.threads.items():
logger.info("stopping worker thread: %s", name)
logger.debug("stopping worker thread: %s", name)
thread.join(self.join_timeout)
logger.debug("closing queues")
self.logs.close()
self.finished.close()
self.progress.close()
for key, queue in self.pending.items():
queue.close()
del self.pending[key]
logger.debug("worker pool fully joined")
def recycle(self):
for name, proc in self.workers.items():
if proc.is_alive():