]> git.proxmox.com Git - qemu.git/commit - block/sheepdog.c
sheepdog: move coroutine send/recv function to generic code
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 8 Sep 2011 11:46:25 +0000 (13:46 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 22 Dec 2011 10:53:53 +0000 (11:53 +0100)
commit8c5135f90e2dcf1d5c3d03106e0ac6e371ccb572
tree5c5976aeb886b20ea1f564cc828b448e56fcbebd
parent993295fedc5fefaefee9ac80e057d8bf08026ef4
sheepdog: move coroutine send/recv function to generic code

Outside coroutines, avoid busy waiting on EAGAIN by temporarily
making the socket blocking.

The API of qemu_recvv/qemu_sendv is slightly different from
do_readv/do_writev because they do not handle coroutines.  It
returns the number of bytes written before encountering an
EAGAIN.  The specificity of yielding on EAGAIN is entirely in
qemu-coroutine.c.

Reviewed-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Makefile.objs
block/sheepdog.c
cutils.c
qemu-common.h
qemu-coroutine-io.c [new file with mode: 0644]