On Thu, Apr 05, 2012 at 06:06:43PM +0800, Zhihua Che wrote:
Hi, everyone
I'm writing application using libvirt and I need call
virDomainGetCPUStats to get domain cpu stats . I learn from API
reference that this function has to be called when domain is running.
So my question is if there is an atomic way to test the domain's state
and get its stats?
Or, it's ok to call this function when domain is not active, but
caller just gets error returned.
In my code, I just call it directly and return error. I wonder if
this programming practice has subtle problem like race condition.
For a function which is only callable when the domain is running, libvirt
will return a special error code VIR_ERR_OPERATION_INVALID if you invoke
it when the domain is shutoff.
Thus the race-free way to deal with this scenario is to just call the
API, and check for VIR_ERR_OPERATION_INVALID. Any other error code is
an indication of a "real" error situaton.
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 :|