我知道pyinotify.Notifier.check_events(self, timeout=None)
可以超時 - 但我寧願它無限期輪詢。是否有可能中斷它?pyinotify中斷check_events
我打電話給Notifier.stop(self)
,但它似乎並沒有從check_events
轉義出來。
在下面的例子中,另一個線程調用stopIt()
,並self.notifier.stop()
被稱爲 - 但既不「check_events是真」,也不是「check_events是假」印:
def run(self):
self.notifier = pyinotify.Notifier(self.monitor, MyProcessing(self))
while True:
self.notifier.process_events()
print "Waiting at check_events"
if self.notifier.check_events():
print "check_events is True"
self.notifier.read_events()
else:
print "check_events is False"
print "Out of while"
return True
def stopIt(self):
self.notifier.stop()
我在想這些方面......但是如果'self.done'被評估並且'check_events'被阻塞 - 如果self.done的值改變了,它會被重新評估嗎? – CrackerJack9 2011-12-31 07:26:34
當另一個線程創建一個虛擬文件時,IN_CREATE事件將取消阻塞'check_events'。因此'self.done'會在循環的下一個循環中被重新評估。 – unutbu 2011-12-31 10:17:31