mirror of
https://github.com/qurator-spk/eynollah.git
synced 2026-03-24 16:12:03 +01:00
predictor: make sure all shared arrays get freed eventually
This commit is contained in:
parent
cf5caa1eca
commit
10214dfdda
1 changed files with 4 additions and 1 deletions
|
|
@ -95,11 +95,13 @@ class Predictor(mp.context.SpawnProcess):
|
||||||
self.logger.exception("setup failed")
|
self.logger.exception("setup failed")
|
||||||
self.stopped.set()
|
self.stopped.set()
|
||||||
closing = {}
|
closing = {}
|
||||||
while not self.stopped.is_set():
|
def close_all():
|
||||||
for jobid in list(self.closable):
|
for jobid in list(self.closable):
|
||||||
self.closable.remove(jobid)
|
self.closable.remove(jobid)
|
||||||
closing.pop(jobid).close()
|
closing.pop(jobid).close()
|
||||||
#self.logger.debug("closed shm for '%d'", jobid)
|
#self.logger.debug("closed shm for '%d'", jobid)
|
||||||
|
while not self.stopped.is_set():
|
||||||
|
close_all()
|
||||||
try:
|
try:
|
||||||
jobid, model, shared_data = self.taskq.get(timeout=1.1)
|
jobid, model, shared_data = self.taskq.get(timeout=1.1)
|
||||||
except mp.queues.Empty:
|
except mp.queues.Empty:
|
||||||
|
|
@ -124,6 +126,7 @@ class Predictor(mp.context.SpawnProcess):
|
||||||
result = e
|
result = e
|
||||||
self.resultq.put((jobid, result))
|
self.resultq.put((jobid, result))
|
||||||
#self.logger.debug("sent result for '%d'", jobid)
|
#self.logger.debug("sent result for '%d'", jobid)
|
||||||
|
close_all()
|
||||||
#self.logger.debug("predictor terminated")
|
#self.logger.debug("predictor terminated")
|
||||||
|
|
||||||
def load_models(self, *loadable: List[str]):
|
def load_models(self, *loadable: List[str]):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue