When writing to the BinaryIO, we are doing some checking to see whether all the bytes are written to the IO. If not, then do the writing again until all the bytes are written. I wonder what determines how many bytes would be written in every call of BinaryIO.write()?