Both QEMU and libxl have the same code for tracking auto-allocated VNC ports. Move this code out into src/util/virportallocator.[c,h]. While doing this turn it into a virObjectLockable so that it becomes a ref-counted object with self-contained locking. This means it no longer needs to be protected by the QEMU/libxl global driver locks.
As part of this series the virObject APIs are enhanced to allow arbitrarily deep inheritance (instead of fixed 1 level), and a new virObjectLockable base class is introduced which extends virObject to provide a mutex. This is a very common need so many existing classes are updated to use it. -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list