[libvirt] PATCH: 21/28: Fill in locking stubs

Daniel Veillard veillard at redhat.com
Wed Dec 3 14:26:51 UTC 2008


On Mon, Dec 01, 2008 at 12:09:21AM +0000, Daniel P. Berrange wrote:
> This patch fills in the previous stub methods for locking/unlocking 
> internal objects. 
> 
> With the following methods return a locked object
> 
>   virDomainFindByID
>   virDomainFindByName
>   virDomainFindByUUID
>   virDomainAssignDef
> 
> All the other methods accepting a virDomainObjPtr instance, require that
> the object first be locked.
> 
> For virDomainDefPtr objects, if they are standalone, no locking is
> required (hence why the Xen driver isn't touched in any of these patches).
> If they are associated with a virDomainObjPtr though, this parent object
> must be locked.
> 
> The same applies for virNetworkObjPtr, virStoragePoolObjPtr and the
> virNodeDeviceObjPtr objects & their methods.

  okay,

> +#ifdef HAVE_PTHREAD_H
> +
> +void virNetworkObjLock(virNetworkObjPtr obj)
> +{
> +    pthread_mutex_lock(&obj->lock);
> +}
> +
> +void virNetworkObjUnlock(virNetworkObjPtr obj)
> +{
> +    pthread_mutex_unlock(&obj->lock);
> +}

  +1 I would just catch the NULL parameter and return there,
it's IMHO nicer to just do that in the (un)locking function than
in every cleanup path, and I guess Jim agrees (though not 100% sure
about his answer :-)

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list