Comment 3 for bug 778032

Revision history for this message
Daniel Berrange (berrange) wrote :

I'm confident this has been solved a while ago. When this bug was reported, the code was indeed broken wrt EAGAIN handling.

The chardev code has long since been re-written though, and the send_all method replaced by io_channel_send_all() which will handle EAGAIN by returning instead of spinning in a loop.

Specifically this commit changed the code to stop spinning in send_all() on EAGAIN

commit 23673ca740e0eda66901ca801a5a901df378b063
Author: Anthony Liguori <email address hidden>
Date: Tue Mar 5 23:21:23 2013 +0530

    qemu-char: add watch support

    This allows a front-end to request for a callback when the backend
    is writable again.