• Stefan Hajnoczi's avatar
    aio: add a ThreadPool instance to AioContext · 9b34277d
    Stefan Hajnoczi authored
    This patch adds a ThreadPool to AioContext.  It's possible that some
    AioContext instances will never use the ThreadPool, so defer creation
    until aio_get_thread_pool().
    The reason why AioContext should have the ThreadPool is because the
    ThreadPool is bound to a AioContext instance where the work item's
    callback function is invoked.  It doesn't make sense to keep the
    ThreadPool pointer anywhere other than AioContext.  For example,
    block/raw-posix.c can get its AioContext's ThreadPool and submit work.
    Special note about headers: I used struct ThreadPool in aio.h because
    there is a circular dependency if aio.h includes thread-pool.h.
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
async.c 5.33 KB