equal
deleted
inserted
replaced
457 def PythonThreadProc(self): |
457 def PythonThreadProc(self): |
458 self.StartSem.release() |
458 self.StartSem.release() |
459 res, cmd, blkid = "None", "None", ctypes.c_void_p() |
459 res, cmd, blkid = "None", "None", ctypes.c_void_p() |
460 compile_cache = {} |
460 compile_cache = {} |
461 while True: |
461 while True: |
462 # print "_PythonIterator(", res, ")", |
|
463 cmd = self._PythonIterator(res, blkid) |
462 cmd = self._PythonIterator(res, blkid) |
464 FBID = blkid.value |
463 FBID = blkid.value |
465 # print " -> ", cmd, blkid |
|
466 if cmd is None: |
464 if cmd is None: |
467 break |
465 break |
468 try: |
466 try: |
469 self.python_runtime_vars["FBID"] = FBID |
467 self.python_runtime_vars["FBID"] = FBID |
470 ccmd, AST = compile_cache.get(FBID, (None, None)) |
468 ccmd, AST = compile_cache.get(FBID, (None, None)) |
653 tick = ctypes.c_uint32() |
651 tick = ctypes.c_uint32() |
654 size = ctypes.c_uint32() |
652 size = ctypes.c_uint32() |
655 buff = ctypes.c_void_p() |
653 buff = ctypes.c_void_p() |
656 TraceBuffer = None |
654 TraceBuffer = None |
657 if self.PLClibraryLock.acquire(False): |
655 if self.PLClibraryLock.acquire(False): |
658 if self._GetDebugData(ctypes.byref(tick), |
656 res = self._GetDebugData(ctypes.byref(tick), |
659 ctypes.byref(size), |
657 ctypes.byref(size), |
660 ctypes.byref(buff)) == 0: |
658 ctypes.byref(buff)) |
|
659 if res == 0: |
661 if size.value: |
660 if size.value: |
662 TraceBuffer = ctypes.string_at(buff.value, size.value) |
661 TraceBuffer = ctypes.string_at(buff.value, size.value) |
663 self._FreeDebugData() |
662 self._FreeDebugData() |
664 self.PLClibraryLock.release() |
663 self.PLClibraryLock.release() |
|
664 |
|
665 if res != 0: |
|
666 break |
|
667 |
665 if TraceBuffer is not None: |
668 if TraceBuffer is not None: |
666 self._TracesPush((tick.value, TraceBuffer)) |
669 self._TracesPush((tick.value, TraceBuffer)) |
667 self._TracesAutoSuspend() |
670 self._TracesAutoSuspend() |
668 self._TracesFlush() |
671 self._TracesFlush() |
669 |
672 |