On Wed, Oct 29, 2008 at 07:45:26AM -0400, Ben Guthro wrote: > > One issue that I seem to be running into for both dom, and conn objects is the creation of a python object from the C vir{Connect,Domain}Ptr > > The issue is that when creating a python object, and passing "_obj" into the constructor - it will give a different python object each time, instead of searching for an existing object, and bumping the ref count. > > For example - each time the C callback would be called, we would create a new python object with the came "._o", rather than getting a new reference to a common one > > This is not an issue unless we want to store data in the python object independent from C object (like the python callback list) > > So...we could create a hash/dict object of virConnect objects...but when would you know to delete the last reference? Yes, the .o trick cmes from libxml2 python bindings where i used the same thing. This can be a bit confusing, but as you noted we don't really found a good workaround to the refcounting problem otherwise. I guess it's fine to implement it that way, if not perfect, and if some Python guru come with a solution, well we don't expect the user code to use the ._o directly so we should be able to change the way we do the mapping without disturbing the python applications. The connection object could be stored though since the virConnectDomainEventRegister() function will need a connection, there in the python bindings we can save a reference to that object and bring it when we get an event. But for Domains, yes we will duplicate objects :-\ Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list