• D
    Move libvirtd event loop into background thread · 075bb5f1
    Daniel P. Berrange 提交于
    The virStateInitialize() call for starting up stateful drivers
    may require that the event loop is running already. This it is
    neccessary to start the event loop before this call. At the
    same time, network clients must not be processed until afte
    virStateInitialize has completed.
    
    The qemudListenUnix() and remoteListenTCP() methods must
    therefore not register file handle watches, merely open the
    network sockets & listen() on them. This means clients can
    connected and are queued, pending completion of initialization
    
    The qemudRunLoop() method is moved into a background thread
    that is started early to allow access to the event loop during
    driver initialization. The main process thread leader pretty
    much does nothing once the daemon is running, merely waits
    for the event loop thread to quit
    
    * daemon/libvirtd.c, daemon/libvirtd.h: Move event loop into
      a background thread
    * daemon/THREADING.txt: Rewrite docs to better reflect reality
    075bb5f1
libvirtd.h 7.4 KB