Bugfix: Do not run gcode analyzer when a print is ongoing

Evaluate active flag on gcode analyzer AFTER fetching an item from the work queue, otherwise it will always start working once it finds something if the active flag was true once but then switched to false while the queue was still empty.

Thanks to @Salandora for spotting this.

Fixes #357
This commit is contained in:
Gina Häußge 2014-02-15 10:26:39 +01:00
parent bcef0dd2c5
commit 592f3dce9a

View file

@ -560,8 +560,6 @@ class MetadataAnalyzer:
def _work(self): def _work(self):
aborted = None aborted = None
while True: while True:
self._active.wait()
if aborted is not None: if aborted is not None:
filename = aborted filename = aborted
aborted = None aborted = None
@ -570,6 +568,8 @@ class MetadataAnalyzer:
(priority, filename) = self._queue.get() (priority, filename) = self._queue.get()
self._logger.debug("Processing file %s from queue (priority %d)" % (filename, priority)) self._logger.debug("Processing file %s from queue (priority %d)" % (filename, priority))
self._active.wait()
try: try:
self._analyzeGcode(filename) self._analyzeGcode(filename)
self._queue.task_done() self._queue.task_done()