[libvirt] [PATCH 07/13] Add libvirt-admin library
Daniel P. Berrange
berrange at redhat.com
Tue Jun 16 11:40:29 UTC 2015
On Tue, Jun 16, 2015 at 01:30:54PM +0200, Martin Kletzander wrote:
> On Tue, Jun 16, 2015 at 12:18:53PM +0100, Daniel P. Berrange wrote:
> >On Tue, Jun 16, 2015 at 01:16:56PM +0200, Martin Kletzander wrote:
> >>On Tue, Jun 16, 2015 at 11:42:52AM +0100, Daniel P. Berrange wrote:
> >>>On Tue, Jun 16, 2015 at 11:58:24AM +0200, Martin Kletzander wrote:
> >>>>Initial scratch of the admin library. It has its own virAdmConnectPtr
> >>>>that inherits from virAbstractConnectPtr and thus trivially supports
> >>>>error reporting.
> >>>>
> >>>>There's pkg-config file added and spec-file adjusted as well.
> >>>>
> >>>>Since the library should be "minimalistic" and not depend on any other
> >>>>library, the list of files is especially crafted for it. Most of them
> >>>>could've been put to it's own sub-libraries that would be LIBADD'd to
> >>>>libvirt_util, libvirt_net_rpc and libvirt_setuid_rpc_client to minimize
> >>>>the number of object files being built, but that's a refactoring that
> >>>>isn't the orginal aim of this commit.
> >>>>
> >>>>Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> >>>
> >>>
> >>>>+/**
> >>>>+ * virAdmInitialize:
> >>>>+ *
> >>>>+ * Initialize the library.
> >>>>+ *
> >>>>+ * Returns 0 in case of success, -1 in case of error
> >>>>+ */
> >>>>+static int
> >>>>+virAdmInitialize(void)
> >>>>+{
> >>>>+ if (virOnce(&virAdmGlobalOnce, virAdmGlobalInit) < 0)
> >>>>+ return -1;
> >>>>+
> >>>>+ if (virAdmGlobalError)
> >>>>+ return -1;
> >>>>+
> >>>>+ return 0;
> >>>>+}
> >>>
> >>>This is declared static
> >>>
> >>
> >>This should not be static,
> >>
> >>>
> >>>>+LIBVIRT_ADMIN_1.3.0 {
> >>>>+ global:
> >>>>+ virAdmInitialize;
> >>>>+ virAdmConnectOpen;
> >>>>+ virAdmConnectClose;
> >>>>+ virAdmConnectRef;
> >>>
> >>>So does not need to be listed here
> >>>
> >>
> >>so it can be listed here. This is similarly to virInitialize().
> >
> >We have virInitialize() as an explicitly callable function in libvirt.so
> >because it was needed for thread safety before we introduced proper
> >thread support.
> >
> >Now that we're using virOnce to do atomic initialization, AFAIK, there is
> >no compelling reason for a virInitialize function to be called explicitly.
> >
> >So I'm not convinced we need to expose virAdmInitialize, unless I'm
> >forgetting something
> >
>
> OK, I thought this might be the case. I will remove it from public
> symbols and push it in a while along with a trivial patch to change
> 1.2.17 to 1.3.0 in libvirt version strings. Should I also remove the
> call to virAdmInitialize() from virAdmConnectOpen()?
No, you need to call virAdmInitialize to trigger the virOnce
code still. Its only the public API that can be removed.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list