def enableBlockDetector(): global block_detect_thread # インタプリタが長時間ブロックしたときに呼ばれる関数 def blockDetector(): print( "" ) print( "Block detected:" ) traceback.print_stack() print( "" ) ckit.enableBlockDetector( blockDetector ) # インタプリタが長時間ブロックしたことを検出するために、 # 定期的にインタプリタを動かし続ける class BlockDetectThread( threading.Thread ): def __init__(self): threading.Thread.__init__(self) self.canceled = False def run(self): ckit.setBlockDetector() while not self.canceled: time.sleep(0.1) def cancel(self): self.canceled = True block_detect_thread = BlockDetectThread() block_detect_thread.start() ckit.setBlockDetector()
def run(self): ckit.setBlockDetector() try: self.check_dir = cfiler_native.CheckDir(self.path) except WindowsError: return while True: if self.cancel_requested : break self.check_dir.wait() self.changed = True # 最短でもでも3秒間隔 for i in range(30): if self.cancel_requested : break time.sleep(0.1)
def run(self): ckit.setBlockDetector() self.event.wait(10.0) if not self.event.isSet(): _forceAbort()
def run(self): ckit.setBlockDetector() while not self.canceled: time.sleep(0.1)