mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-25 15:06:38 +02:00
[core] stop StatisticsThread when node is processed
This commit is contained in:
parent
bc5bb96c2e
commit
23541db54d
2 changed files with 13 additions and 6 deletions
|
@ -446,10 +446,10 @@ class Node(BaseObject):
|
|||
self.upgradeStatusTo(Status.ERROR)
|
||||
raise
|
||||
finally:
|
||||
statThread.running = False
|
||||
# Don't need to join, the thread will finish a bit later.
|
||||
# statThread.join()
|
||||
self._subprocess = None
|
||||
# ask and wait for the stats thread to terminate
|
||||
statThread.stopRequest()
|
||||
statThread.join()
|
||||
|
||||
self.upgradeStatusTo(Status.SUCCESS)
|
||||
|
||||
|
|
|
@ -191,8 +191,8 @@ class StatisticsThread(threading.Thread):
|
|||
threading.Thread.__init__(self)
|
||||
self.node = node
|
||||
self.proc = None
|
||||
self.running = True
|
||||
self.statistics = self.node.statistics
|
||||
self._stopFlag = threading.Event()
|
||||
|
||||
def updateStats(self):
|
||||
self.lastTime = time.time()
|
||||
|
@ -200,7 +200,14 @@ class StatisticsThread(threading.Thread):
|
|||
self.node.saveStatistics()
|
||||
|
||||
def run(self):
|
||||
while self.running:
|
||||
while True:
|
||||
self.updateStats()
|
||||
time.sleep(60)
|
||||
if self._stopFlag.wait(60):
|
||||
# stopFlag has been set
|
||||
# update stats one last time and exit main loop
|
||||
self.updateStats()
|
||||
return
|
||||
|
||||
def stopRequest(self):
|
||||
""" Request the thread to exit as soon as possible. """
|
||||
self._stopFlag.set()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue