
On Tue, Jan 13, 2009 at 05:43:08PM +0000, Daniel P. Berrange wrote:
With the domain events code, the callbacks triggered upon events get given a virDomainPtr object instance. In many cases it'd be desirable to grab this object and keep it in your app code. Unfortunately it is free'd the moment the callback finishes executing.
When allowing multiple threads to access a single virConnectPtr object it is neccessary to ensure no thread releases it (virConnectCLose) while another thread is still using it.
The way to address both of these problems is to allow an application to take an explicit reference on the object in question. So this patch exposes methods to allow an app to increment the ref count on all our public objects. To release the ref count, the existing virConectClose/ virDOmainFree, etc methods suffice
include/libvirt/libvirt.h | 6 + include/libvirt/libvirt.h.in | 6 + src/libvirt.c | 183 +++++++++++++++++++++++++++++++++++++++++++ src/libvirt_public.syms | 12 ++ 4 files changed, 206 insertions(+), 1 deletion(-)
Poor man's garbage collection ... +1. Rich. -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top