On 06/22/2011 11:30 AM, Matthias Bolte wrote:
> Hmm, good points. How about:
>
> Connections are reference counted; the count is explicitly increased by
> virConnectRef and virConnectOpen, as well as temporarily increased by
> other API that depend on the connection remaining alive. Every
> virConnectRef and virConnectOpen call should have a matching
> virConnectClose, and all other references will be released after the
> corresponding operation completes.
There is virConnectOpenReadOnly and virConnectOpenAuth too.
I went with the more general:
... the count is explicitly
* increased by the initial open (virConnectOpen, virConnectOpenAuth,
* and the like) as well as virConnectRef;
You're a bit vague about the "other API", but I think
its better this
way than being too explicit and creating some kind of list that need
to be maintained here.
Agreed.
> The return value is the number of remaining references on success
> (positive implies that some other call still has a reference open, 0
> implies that no references remain and the connection is closed), or -1
> on failure. It is possible for the last virConnectClose to return a
> positive value if some other object still has a temporary reference to
> the connection, but the application should not try to further use a
> connection after the virConnectClose that matches the virConnectOpen.
and here, I did s/virConnectOpen/the initial open/
ACK.
Pushed.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org