Skip to content
  • Paolo Bonzini's avatar
    aio: add generic thread-pool facility · d354c7ec
    Paolo Bonzini authored
    
    
    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: default avatarPaolo Bonzini <pbonzini@redhat.com>
    d354c7ec