Colossus wrote:

> The red bytes do not correspond to the written ones:
> Bytes letti: 65536      Bytes scritti: 65536
> Bytes letti: 65536      Bytes scritti: 2015
> Bytes letti: 65536      Bytes scritti: 0
> Bytes letti: 65536      Bytes scritti: 0
> Bytes letti: 65536      Bytes scritti: 0
> Bytes letti: 12288      Bytes scritti: 0
> 
> The strangeness is that I do not have any error, the status of operation
> is always G_IO_STATUS_NORMAL; any clue ?

in non-blocking I/O, it is not guaranteed that a call handles all of the
supplied bytes. If you request 4000 bytes, you may receive 3000. Same if
you try to write 4000 bytes, the call may process 3000. Your code should
thus track which bytes are already processed, and offer the remaining
bytes to the function another time.

This is the essention on "non-blocking": the function will stop
processing data if the call would ake too much time, and it will tell
you how far it went. So you may then update your GUI, and present the
remaining data again.

regards,
        Olivier
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to