runtime/PLCObject.py
changeset 1990 2e0fbdd152de
parent 1988 19ca02e8074f
child 1993 cbf0a9ffc782
--- a/runtime/PLCObject.py	Mon Apr 16 11:00:04 2018 +0200
+++ b/runtime/PLCObject.py	Mon Apr 16 16:11:18 2018 +0200
@@ -459,10 +459,8 @@
         res, cmd, blkid = "None", "None", ctypes.c_void_p()
         compile_cache = {}
         while True:
-            # print "_PythonIterator(", res, ")",
             cmd = self._PythonIterator(res, blkid)
             FBID = blkid.value
-            # print " -> ", cmd, blkid
             if cmd is None:
                 break
             try:
@@ -655,13 +653,18 @@
             buff = ctypes.c_void_p()
             TraceBuffer = None
             if self.PLClibraryLock.acquire(False):
-                if self._GetDebugData(ctypes.byref(tick),
-                                      ctypes.byref(size),
-                                      ctypes.byref(buff)) == 0:
+                res = self._GetDebugData(ctypes.byref(tick),
+                                         ctypes.byref(size),
+                                         ctypes.byref(buff)) 
+                if res == 0:
                     if size.value:
                         TraceBuffer = ctypes.string_at(buff.value, size.value)
                     self._FreeDebugData()
                 self.PLClibraryLock.release()
+                
+                if res != 0:
+                    break
+
             if TraceBuffer is not None:
                 self._TracesPush((tick.value, TraceBuffer))
             self._TracesAutoSuspend()