]> git.proxmox.com Git - qemu.git/commit
aio: add a ThreadPool instance to AioContext
authorStefan Hajnoczi <stefanha@redhat.com>
Thu, 7 Mar 2013 12:41:47 +0000 (13:41 +0100)
committerStefan Hajnoczi <stefanha@redhat.com>
Fri, 15 Mar 2013 15:07:50 +0000 (16:07 +0100)
commit9b34277d23a6fb15eb9513006c96d8026beeea1f
treef80c25a174a86df8393f0ef4e653d2b1d21cb376
parentf7311ccc630d925e7351e9440b7ad8bc6f0a51de
aio: add a ThreadPool instance to AioContext

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: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
async.c
include/block/aio.h