]> git.proxmox.com Git - mirror_qemu.git/commit - Makefile.objs
aio: add generic thread-pool facility
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 23 Feb 2012 12:23:34 +0000 (13:23 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 31 Oct 2012 09:37:48 +0000 (10:37 +0100)
commitd354c7eccf5466ec2715a03d3f33dbfd6680dcc5
tree1c77f58c201cb14dc7f13d45a1e4cd70ce2f30d9
parent38b14db34e16bb0ae1f28b7ddccb6aa11a2a96a1
aio: add generic thread-pool facility

Add a generic thread-pool.  The code is roughly based on posix-aio-compat.c,
with some changes, especially the following:

- use QemuSemaphore instead of QemuCond;

- separate the state of the thread from the return code of the worker
function.  The return code is totally opaque for the thread pool;

- do not busy wait when doing cancellation.

A more generic threadpool (but still specific to I/O so that in the future
it can use special scheduling classes or PI mutexes) can have many uses:
it allows more flexibility in raw-posix.c and can more easily be extended
to Win32, and it will also be used to do an msync of the persistent bitmap.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Makefile.objs
thread-pool.c [new file with mode: 0644]
thread-pool.h [new file with mode: 0644]
trace-events