• Stefan Hajnoczi's avatar
    aio: make aio_poll(ctx, true) block with no fds · d3fa9230
    Stefan Hajnoczi authored
    This patch drops a special case where aio_poll(ctx, true) returns false
    instead of blocking if no file descriptors are waiting on I/O.  Now it
    is possible to block in aio_poll() to wait for aio_notify().
    
    This change eliminates busy waiting.  bdrv_drain_all() used to rely on
    busy waiting to completed throttled I/O requests but this is no longer
    required so we can simplify aio_poll().
    
    Note that aio_poll() still returns false when aio_notify() was used.  In
    other words, stopping a blocking aio_poll() wait is not considered
    making progress.
    
    Adjust test-aio /aio/bh/callback-delete/one which assumed aio_poll(ctx,
    true) would immediately return false instead of blocking.
    Reviewed-by: default avatarAlex Bligh <alex@alex.org.uk>
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    d3fa9230
aio-win32.c 5.96 KB