diff -r 9b5c712f4488 -r 2e0fbdd152de runtime/PLCObject.py --- 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()