[libvirt] [PATCH 3/3] Remove time APIs from src/util/util.h

Daniel P. Berrange berrange at redhat.com
Tue Nov 29 13:43:25 UTC 2011


On Tue, Nov 29, 2011 at 02:10:20PM +0100, Jiri Denemark wrote:
> On Tue, Nov 29, 2011 at 12:38:24 +0000, Daniel P. Berrange wrote:
> > From: "Daniel P. Berrange" <berrange at redhat.com>
> > 
> > The virTimestamp and virTimeMs functions in src/util/util.h
> > duplicate functionality from virtime.h, in a non-async signal
> > safe manner. Remove them, and convert all code over to the new
> > APIs.
> > 
> > * src/util/util.c, src/util/util.h: Delete virTimeMs and virTimestamp
> > * src/lxc/lxc_driver.c, src/qemu/qemu_domain.c,
> >   src/qemu/qemu_driver.c, src/qemu/qemu_migration.c,
> >   src/qemu/qemu_process.c, src/util/event_poll.c: Convert to use
> >   virtime APIs
> > ---
> >  src/libvirt_private.syms  |    2 -
> >  src/lxc/lxc_driver.c      |    3 +-
> >  src/qemu/qemu_domain.c    |    5 ++-
> >  src/qemu/qemu_driver.c    |    7 +++--
> >  src/qemu/qemu_migration.c |    5 ++-
> >  src/qemu/qemu_process.c   |    9 ++++---
> >  src/util/event_poll.c     |    9 ++++---
> >  src/util/util.c           |   53 ---------------------------------------------
> >  src/util/util.h           |    4 ---
> >  9 files changed, 22 insertions(+), 75 deletions(-)
> > 
> ...
> > diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> > index d33d1d9..b28c734 100644> > --- a/src/qemu/qemu_domain.c
> > +++ b/src/qemu/qemu_domain.c
> > @@ -36,6 +36,7 @@
> >  #include "uuid.h"
> >  #include "virfile.h"
> >  #include "domain_event.h"
> > +#include "virtime.h"
> >  
> >  #include <sys/time.h>
> >  #include <fcntl.h>
> > @@ -728,7 +729,7 @@ qemuDomainObjBeginJobInternal(struct qemud_driver *driver,
> >  
> >      priv->jobs_queued++;
> >  
> > -    if (virTimeMs(&now) < 0)
> > +    if (virTimeMillisNow(&now) < 0)
> >          return -1;
> >      then = now + QEMU_JOB_WAIT_TIME;
> >  
> ...
> 
> This (and other similar ones in this patch) simple replacement won't work
> since virTimeMs used to report libvirt error while virTimeMillisNow doesn't do
> that. Thus in case of error (although it's not a frequent one)
> qemuDomainObjBeginJobInternal would return -1 without reporting any error.

Oh whoops. I guess I'll create a second variant (which isn't async
signal safe) which raises real errors to use in this scenario


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