
On Jul 31, 2004, at 3:55 PM, George Schlossnagle wrote:
I'm working on porting the mod_pubsub system to use the twisted framework. So far things are great, but I have one point of clarificaction. With all the standard reactors, how are writes handled in a non-blocking manner? Copying from some of the sample protocols, I have a dataReceived method in my Protocol implementation that looks vaguely like this:
def dataReceived(self, data): self.inbuf += data if self.canReply() == true: self.transport.write(self.response)
My question is: does write() make a non-blocking write, and if so does it reschedule itself later on automatically? Does it block? What is the preferred way of handling this?
It makes non-blocking writes until all of the data available is written. It uses a buffer. -bob