[libvirt-users] Is this Race Condition?
Daniel P. Berrange
berrange at redhat.com
Thu Apr 5 10:38:53 UTC 2012
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 :|
More information about the libvirt-users
mailing list