chiark / gitweb /
Improve memory handling.
authordaid <daid303@gmail.com>
Mon, 12 Jan 2015 12:57:11 +0000 (13:57 +0100)
committerdaid <daid303@gmail.com>
Mon, 12 Jan 2015 12:57:11 +0000 (13:57 +0100)
Cura/util/bigDataStorage.py
Cura/util/sliceEngine.py

index d1c4c86bceb6161fe3a787411ec10036c1cd8f51..b3894dace654e0a2f8161ab2bd0c7868dc45a207 100644 (file)
@@ -13,7 +13,7 @@ class BigDataStorage(object):
 \r
        def write(self, data):\r
                self._active.write(data)\r
-               if self._active.tell() > 1024 * 1024 * 100:\r
+               if self._active.tell() > 1024 * 1024 * 50:\r
                        self._active = StringIO.StringIO()\r
                        self._list.append(self._active)\r
 \r
@@ -39,11 +39,11 @@ class BigDataStorage(object):
                data = self._list[0].getvalue()\r
                block0 = data[0:2048]\r
                block1 = StringIO.StringIO()\r
+               self._list[0] = StringIO.StringIO()\r
                block1.write(data[2048:])\r
                self._list.insert(1, block1)\r
                for key, value in dictionary.items():\r
                        block0 = block0.replace(key, str(value))\r
-               self._list[0] = StringIO.StringIO()\r
                self._list[0].write(block0)\r
 \r
        def __len__(self):\r
index cf2d16f7697503d57f97703f1a2735a91985ef66..f4e521e2380486ccbeb8b9c4e9aa4cb295600d7b 100644 (file)
@@ -298,7 +298,10 @@ class Engine(object):
        def _runEngine(self, scene, overrides, old_thread):
                if old_thread is not None:
                        if self._process is not None:
-                               self._process.terminate()
+                               try:
+                                       self._process.terminate()
+                               except:
+                                       pass
                        old_thread.join()
                self._callback(-1.0)
 
@@ -427,6 +430,7 @@ class Engine(object):
                                self._callback(-1.0)
                        self._process = None
                except MemoryError:
+                       traceback.print_exc()
                        self._result.addLog("MemoryError")
                        self._callback(-1.0)