[Python-Dev] Raw I/O writelines() broken

Antoine Pitrou solipsis at pitrou.net
Mon Aug 20 23:42:56 CEST 2012


On Mon, 20 Aug 2012 23:17:10 +0200
Antoine Pitrou <solipsis at pitrou.net> wrote:
> 
> Hello,
> 
> I was considering a FileIO.writelines() implementation based on
> writev() and I noticed that the current RawIO.writelines()
> implementation is broken: RawIO.write() can return a partial write but
> writelines() ignores the result and happily proceeds to the next
> iterator item (and None is returned at the end).
> 
> (it's probably broken with non-blocking streams too, for the same
> reason)
> 
> In the spirit of RawIO.write(), I think RawIO.writelines() could return
> the number of bytes written (allowing for partial writes).

Another possibility would be a separate RawIO.writev() that would allow
partial writes, and to fix RawIO.writelines() to always do complete
writes.

Regards

Antoine.


-- 
Software development and contracting: http://pro.pitrou.net




More information about the Python-Dev mailing list