タイムアウトが発生する可能性があることはわかっていpyinotify.Notifier.check_events(self, timeout=None)
ますが、無期限にポーリングすることをお勧めします。それを中断することは可能ですか?
と呼んNotifier.stop(self)
でいますが、から逃げていないようですcheck_events
。
次の例では、別のスレッドがを呼び出しstopIt()
、self.notifier.stop()
呼び出されますが、「check_eventsisTrue」も「check_eventsisFalse」も出力されません。
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()