• D
    qemu: start/stop an event loop thread for domains · e6afacb0
    Daniel P. Berrangé 提交于
    The event loop thread will be responsible for handling
    any per-domain I/O operations, most notably the QEMU
    monitor and agent sockets.
    
    We start this event loop when launching QEMU, but stopping
    the event loop is a little more complicated. The obvious
    idea is to stop it in qemuProcessStop(), but if we do that
    we risk loosing the final events from the QEMU monitor, as
    they might not have been read by the event thread at the
    time we tell the thread to stop.
    
    The solution is to delay shutdown of the event thread until
    we have seen EOF from the QEMU monitor, and thus we know
    there are no further events to process.
    
    Note that this assumes that we don't have events to process
    from the QEMU agent.
    Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
    Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
    e6afacb0
qemu_process.c 263.9 KB