One thing that I still haven't figured out is, when the daemon is waiting in
the even loop, in poll() and SIGINT comes, it jumps out and cleanup phase
begins. However, the event loop may still be the one and only holding a
reference to some objects, so we kind of want it to at least remove stale
handlers. Well, they will be deleted after the cleanup work in the daemon is
done. Yeah, messy and probably not worth breaking up the code into smaller
pieces just to cleanup deleted handles.
Michal Privoznik (4):
daemonSetupNetworking: Don't leak services
virNetSocketRemoveIOCallback: Be explicit about unref
virNetSocket: Fix @watch corner case
virNetServerServiceClose: Don't leak sockets
daemon/libvirtd.c | 47 ++++++++++++++++++++++---------------------
src/rpc/virnetserverservice.c | 5 ++++-
src/rpc/virnetsocket.c | 11 ++++++----
3 files changed, 35 insertions(+), 28 deletions(-)
--
2.3.6