On Wed, Jul 09, 2014 at 11:53:00AM +0200, Paolo Bonzini wrote: > This series simplifies heavily aio_poll by splitting it into three > phases: prepare (aio_compute_timeout), poll, dispatch. The resulting > code shares more logic between aio_poll and the GSource wrappers, > and makes it easier to add Win32 support for sockets. > > Win32 support for sockets is a prerequisite for moving the NBD server > into the BlockDriverState's attached AioContext. It is done in the > final patch, based on earlier work from Or Goshen (from Intel). > I had to more or less rewrite it to fit the new framework, but you > can see parts of Or's work, as well as traces of aio-posix.c and > main-loop.c logic. > > Tested with NBD boot under Wine. > > Paolo > > Paolo Bonzini (10): > AioContext: take bottom halves into account when computing aio_poll > timeout > aio-win32: Evaluate timers after handles > aio-win32: Factor out duplicate code into aio_dispatch_handlers > AioContext: run bottom halves after polling > AioContext: export and use aio_dispatch > test-aio: test timers on Windows too > aio-win32: add aio_set_dispatching optimization > AioContext: introduce aio_prepare > qemu-coroutine-io: fix for Win32 > aio-win32: add support for sockets > > aio-posix.c | 58 ++++-------- > aio-win32.c | 262 > +++++++++++++++++++++++++++++++++++++++------------- > async.c | 39 +++++--- > block/Makefile.objs | 2 - > include/block/aio.h | 25 ++++- > nbd.c | 2 +- > qemu-coroutine-io.c | 4 +- > tests/test-aio.c | 48 +++------- > 8 files changed, 277 insertions(+), 163 deletions(-)
I'm happy with this series except for my question about int vs int64_t types for nanosecond time values.
pgp_u71eoXlgk.pgp
Description: PGP signature