[Twisted-Python] transport.write clarification

George Schlossnagle george at omniti.com
Sat Jul 31 15:26:56 MDT 2004


On Jul 31, 2004, at 5:03 PM, Bob Ippolito wrote:

>
> 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.

Super, thanks.

George





More information about the Twisted-Python mailing list