[libvirt] [PATCH 4/9] Introduce annotations for virLXCDriverPtr fields

Daniel P. Berrange berrange at redhat.com
Thu Jul 18 10:18:47 UTC 2013


On Wed, Jul 17, 2013 at 03:04:21PM +0200, Michal Privoznik wrote:
> Annotate the fields in virLXCDriverPtr to indicate the locking
> rules for their use
> ---
>  src/lxc/lxc_conf.h | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/src/lxc/lxc_conf.h b/src/lxc/lxc_conf.h
> index f9a3e53..831e3e5 100644
> --- a/src/lxc/lxc_conf.h
> +++ b/src/lxc/lxc_conf.h
> @@ -67,29 +67,43 @@ struct _virLXCDriverConfig {
>  struct _virLXCDriver {
>      virMutex lock;
>  
> +    /* Require lock to get reference on 'config',
> +     * then lockless thereafter */
>      virLXCDriverConfigPtr config;
>  
> +    /* Require lock while using. Unsafe. XXX */
>      virCapsPtr caps;
>  
> +     /* Immutable pointer. Unsafe APIs XXX */
>      virCgroupPtr cgroup;

Oh this field is completely unused & should have been deleted a
while back. Please just kill as a separate patch.

>  
> +    /* Immutable pointer, Immutable object */
>      virDomainXMLOptionPtr xmlopt;
>  
> +    /* Immutable pointer, lockless APIs*/
>      virSysinfoDefPtr hostsysinfo;
>  
> +    /* Atomic inc/dec only */
>      unsigned int nactive;
>  
> +    /* Immutable pointers. Caller must provide locking */
>      virStateInhibitCallback inhibitCallback;
>      void *inhibitOpaque;
>  
> +    /* Immutable pointer, self-locking APIs */
>      virDomainObjListPtr domains;
>  
> +    /* Immutable pointer. Requires lock to be held before
> +     * calling APIs. */
>      virUSBDeviceListPtr activeUsbHostdevs;
>  
> +    /* Immutable pointer, self-locking APIs */
>      virDomainEventStatePtr domainEventState;
>  
> +    /* Immutable pointer. self-locking APIs */
>      virSecurityManagerPtr securityManager;
>  
> +    /* Immutable pointer. Unsafe APIs. XXX */
>      virHashTablePtr autodestroy;
>  };

ACK, all makes sense.

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