[Twisted-Python] how to stop dataReceived while waiting a deferred to fire?

James Y Knight foom at fuhm.net
Mon Feb 21 00:08:43 EST 2005


On Feb 20, 2005, at 11:50 PM, Andrea Arcangeli wrote:

> There must be a way to throttle the input at the kernel level, the recv
> syscall must not be called while the deferred is outstanding.
>
> Please help thanks, I'm stuck on this right now...


I assume you're using NetstringReceiver? You want to implement the 
Producer interface: pauseProducing/resumeProducing/stopProducing, 
similar to how LineReceiver implements it. (That is, submit a patch to 
NetstringReceiver implementing it).  LineReceiver's pauseProducing does 
exactly what you want: 1) stops the socket from being read more and 2) 
doesn't call lineReceived any more even if there are more lines already 
buffered.

James





More information about the Twisted-Python mailing list