I agree somewhat, but I observed in our project that we would instead prefer to have a deferred that one can trigger to cancel the queue.get() (and therefore cancel the watcher).
This would require to use something like:
defer.DeferredList((watch_children, stop_get), fireOnOneCallback=True, fireOnOneErrback=True)
So one could stop the get call by issuing:
queue.stop_get.errback(Failure(QueueStopGet("Quit")))
I agree somewhat, but I observed in our project that we would instead prefer to have a deferred that one can trigger to cancel the queue.get() (and therefore cancel the watcher).
This would require to use something like:
defer.DeferredL ist((watch_ children, stop_get), fireOnOneCallba ck=True, fireOnOneErrbac k=True)
So one could stop the get call by issuing:
queue.stop_ get.errback( Failure( QueueStopGet( "Quit") ))