- with open(os.path.join(profile.getBasePath(), 'engine.log'), "w") as f:
- for line in self._result.getLog():
- f.write(line + "\n")
- except:
- pass
-
- if returnCode == 0:
- pluginError = pluginInfo.runPostProcessingPlugins(self._result, pluginConfig)
- if pluginError is not None:
- print pluginError
- self._result.addLog(pluginError)
- self._result.setFinished(True)
- self._callback(1.0)
- else:
+ data = self._process.stdout.read(4096)
+ while len(data) > 0:
+ if self._thread != threading.currentThread():
+ self._process.terminate()
+ self._result._gcodeData.write(data)
+ data = self._process.stdout.read(4096)
+
+ returnCode = self._process.wait()
+ logThread.join()
+ self._result.addLog("Slicer process returned : %d" % returnCode)
+ if returnCode == 0:
+ plugin_error = pluginInfo.runPostProcessingPlugins(self._result, pluginConfig)
+ if plugin_error is not None:
+ self._result.addLog(plugin_error)
+ self._result.setFinished(True)
+ self._callback(1.0)
+ else:
+ self._callback(-1.0)
+ self._process = None
+ except MemoryError:
+ self._result.addLog("MemoryError")