[Twisted-Python] Deferred question
Hello everyone, I have a question concerning defers, I have a service that needs to query IO until it answers. The IO can be disconnected, connected but off, connected and on; depending on the state I get different exceptions. I wrote something like : def __requestId(self, _): d = self.callPlugin(PLUGIN_NAME) d.addCallback(self.__receivedAns) d.addErrback(self.__requestId) The plugin makes the request in a thread and the deferred is returned and called when either an answer is received or am exception is raised (e.g. timeout, missing hardware, etc) This seams to work well, except that when I let the system run for a long time without the hardware being present or off (several hours/days) the memory consumption goes way up. I don' t really know what is causing this, and I'm looking for possible reasons, so I was wondering if maybe this could be what is causing the problem. It's probably not that, because from what I understand it works like this : 1. the first request is made 2. there is a timeout or something that raises the exception 3. the errback gets called 4. it makes a new request 5. the deferred gets garbage collected 6. the new request follows the same path Can anyone confirm that this is correct, or are my defers somehow staying alive and not being garbage collected? Thank you, Gabriel Rossetti
participants (2)
-
Gabriel Rossetti
-
James Y Knight