On Tue, Jun 05, 2012 at 11:12:30PM +0900, MORITA Kazutaka wrote: > The old sheepdog driver didn't do asynchronous I/Os; it did a busy > loop when send/recv returns with EAGAIN. I moved to coroutine > implementation because it could make the sheepdog driver asynchronous > with a very little change. I think we can pretty easily do real AIO using normal non-blocking I/O and callbacks from the event handler, similar to how the sheep daemon works. > I'm not against going back to aio callback codes, but I'd rather see a > block driver with a sheepdog client library so that we can more easily > develop sheepdog client codes. Given that the coroutines are a qemu-local concept I think moving to a normal callback based event driven model is a prerequisite for that, otherwise the code won't be very useful outside of qemu. |