1
0
Fork 0

fix(api): close queues after stopping workers

This commit is contained in:
Sean Sube 2023-03-26 18:21:53 -05:00
parent dca8a97796
commit e1219cca90
Signed by: ssube
GPG Key ID: 3EED7B957D362AF1
1 changed files with 14 additions and 10 deletions

View File

@ -235,16 +235,6 @@ class DevicePoolExecutor:
logger.info("stopping worker pool")
with self.rlock:
logger.debug("closing queues")
self.logs.close()
for queue in self.progress.values():
queue.close()
for queue in self.pending.values():
queue.close()
self.pending.clear()
self.join_leaking()
logger.debug("stopping device workers")
for device, worker in self.workers.items():
if worker.is_alive():
@ -269,6 +259,20 @@ class DevicePoolExecutor:
logger.debug("stopping health worker")
self.health_worker.join(self.join_timeout)
logger.debug("closing worker queues")
self.logs.close()
for queue in self.pending.values():
queue.close()
for queue in self.progress.values():
queue.close()
self.pending.clear()
self.progress.clear()
logger.debug("stopping leaking workers")
self.join_leaking()
logger.debug("worker pool stopped")
def join_leaking(self):