The write function returns None if there was no room to write the given
data[1]. I don't like that this is effectively an infinite loop if there's
never any progress emptying the underlying buffer, but we're no worse off than
before, and it fixes random stacktrace popups seen in the py3 build of
TortoiseHg.
[1] https://docs.python.org/3/library/io.html#io.RawIOBase.write