This patch series adds support for timers attached to an AioContext clock which get called within aio_poll.
In doing so it removes alarm timers and moves to use ppoll where possible. This patch set 'sort of' passes make check (see below for caveat) including a new test harness for the aio timers, but has not been tested much beyond that. In particular, the win32 changes have not even been compile tested. Caveat: make check fails one test only with: ERROR:tests/test-aio.c:346:test_wait_event_notifier_noflush: assertion failed: (aio_poll(ctx, false)) As gar as I can tell, this check is incorrect, in that it checking aio_poll makes progress when in fact it should not make progress. I fixed an issue where aio_poll was (as far as I can tell) wrongly returning true on a timeout, and that generated this error. Alex Bligh (7): aio / timers: Remove alarm timers aio / timers: qemu-timer.c utility functions and add list of clocks aio / timers: add ppoll support with qemu_g_poll_ns aio / timers: Make qemu_run_timers and qemu_run_all_timers return progress aio / timers: Add a clock to AioContext aio / timers: Switch to ppoll, run AioContext timers in aio_poll/aio_dispatch aio / timers: Add test harness for AioContext timers aio-posix.c | 20 +- aio-win32.c | 20 +- async.c | 18 +- configure | 19 ++ include/block/aio.h | 5 + include/qemu/timer.h | 25 +- main-loop.c | 47 ++-- qemu-timer.c | 619 +++++++++----------------------------------------- tests/test-aio.c | 124 +++++++++- vl.c | 5 +- 10 files changed, 363 insertions(+), 539 deletions(-) -- 1.7.9.5