[libvirt] [PATCH v3 10/10] Turn virNetClient* into virObject instances

Daniel P. Berrange berrange at redhat.com
Tue Aug 7 11:31:05 UTC 2012


On Mon, Aug 06, 2012 at 01:56:33PM -0600, Eric Blake wrote:
> On 08/06/2012 05:53 AM, Daniel P. Berrange wrote:
> > From: "Daniel P. Berrange" <berrange at redhat.com>
> > 
> > Make all the virNetClient* objects use virObject APIs for
> > reference counting
> > 
> > Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> > ---
> >  src/libvirt_probes.d          |    4 +-
> >  src/lxc/lxc_monitor.c         |    4 +-
> >  src/remote/remote_driver.c    |   20 ++++-----
> >  src/rpc/gendispatch.pl        |    4 +-
> >  src/rpc/virnetclient.c        |   96 +++++++++++++++++------------------------
> >  src/rpc/virnetclient.h        |    4 +-
> >  src/rpc/virnetclientprogram.c |   43 +++++++++---------
> >  src/rpc/virnetclientprogram.h |    5 +--
> >  src/rpc/virnetclientstream.c  |   65 +++++++++++++---------------
> >  src/rpc/virnetclientstream.h  |    5 +--
> >  10 files changed, 110 insertions(+), 140 deletions(-)
> 
> 
> > +++ b/src/rpc/virnetclient.h
> > @@ -30,6 +30,7 @@
> >  # endif
> >  # include "virnetclientprogram.h"
> >  # include "virnetclientstream.h"
> > +# include "virobject.h"
> 
> Same comments about .c instead of .h.
> 
> > -void virNetClientProgramRef(virNetClientProgramPtr prog)
> > +void virNetClientProgramDispose(void *obj ATTRIBUTE_UNUSED)
> >  {
> > -    prog->refs++;
> > -}
> > -
> > -
> > -void virNetClientProgramFree(virNetClientProgramPtr prog)
> > -{
> > -    if (!prog)
> > -        return;
> > -
> > -    prog->refs--;
> > -    if (prog->refs > 0)
> > -        return;
> > -
> > -    VIR_FREE(prog);
> >  }
> 
> And another no-op dispose where you could use NULL instead.
> 
> ACK with this squashed in:
> 
> diff --git i/cfg.mk w/cfg.mk
> index 64af1ee..c0457e7 100644
> --- i/cfg.mk
> +++ w/cfg.mk
> @@ -145,9 +145,6 @@ useless_free_options =				\
>    --name=virJSONValueFree			\
>    --name=virLastErrFreeData			\
>    --name=virNetMessageFree                      \
> -  --name=virNetClientFree                       \
> -  --name=virNetClientProgramFree                \
> -  --name=virNetClientStreamFree                 \
>    --name=virNetServerMDNSFree                   \
>    --name=virNetServerMDNSEntryFree              \
>    --name=virNetServerMDNSGroupFree              \
> diff --git i/src/libvirt_private.syms w/src/libvirt_private.syms
> index 0543005..79b4a18 100644
> --- i/src/libvirt_private.syms
> +++ w/src/libvirt_private.syms
> @@ -1304,7 +1304,6 @@ virNetClientAddProgram;
>  virNetClientAddStream;
>  virNetClientClose;
>  virNetClientDupFD;
> -virNetClientFree;
>  virNetClientGetFD;
>  virNetClientGetTLSKeySize;
>  virNetClientHasPassFD;
> @@ -1318,7 +1317,6 @@ virNetClientNewExternal;
>  virNetClientNewSSH;
>  virNetClientNewTCP;
>  virNetClientNewUNIX;
> -virNetClientRef;
>  virNetClientRemoteAddrString;
>  virNetClientRemoveStream;
>  virNetClientSendNoReply;
> @@ -1333,12 +1331,10 @@ virNetClientSetTLSSession;
>  # virnetclientprogram.h
>  virNetClientProgramCall;
>  virNetClientProgramDispatch;
> -virNetClientProgramFree;
>  virNetClientProgramGetProgram;
>  virNetClientProgramGetVersion;
>  virNetClientProgramMatches;
>  virNetClientProgramNew;
> -virNetClientProgramRef;
> 
> 
>  # virnetclientstream.h
> @@ -1346,13 +1342,11 @@ virNetClientStreamEOF;
>  virNetClientStreamEventAddCallback;
>  virNetClientStreamEventRemoveCallback;
>  virNetClientStreamEventUpdateCallback;
> -virNetClientStreamFree;
>  virNetClientStreamMatches;
>  virNetClientStreamNew;
>  virNetClientStreamQueuePacket;
>  virNetClientStreamRaiseError;
>  virNetClientStreamRecvPacket;
> -virNetClientStreamRef;
>  virNetClientStreamSendPacket;
>  virNetClientStreamSetError;

Thanks for all the reviews. This series is now merged, with the changes
you suggested for cfg.mk and libvirt_private.syms

Now we're in a position to consider removing locking from some places
which only use it for the purpose of protecting ref counts....

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