[libvirt-users] Is this Race Condition?

Zhihua Che zhihua.che at gmail.com
Thu Apr 5 11:36:51 UTC 2012


在 2012年4月5日 下午6:38,Daniel P. Berrange <berrange at redhat.com> 写道:
> 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
> --

I guess I got it.




More information about the libvirt-users mailing list