11 Jan
2013
11 Jan
'13
9:13 p.m.
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.