[libvirt] [PATCH v2 1/2] Add static mutex initializer.

Eric Blake eblake at redhat.com
Wed Apr 20 20:46:34 UTC 2011


On 04/20/2011 03:14 AM, Hu Tao wrote:
> This prepares for the next patch.
> 
> The bad is we have no way to check the return value for
> CreateMutex when it is used as a static initializer.
> ---
>  src/util/threads-pthread.h |    5 +++++
>  src/util/threads-win32.h   |    5 +++++
>  2 files changed, 10 insertions(+), 0 deletions(-)

Then again, the next patch doesn't use VIR_MUTEX_INITIALIZER under WIN32
(it is only used in the fallback after gcc builtins and WIN32 native
functions are bypassed).  So, even simpler is just leaving it undefined
for that platform, and deferring the problem of a working solution until
the next time (if ever) we think we need the usage pattern of a
static-initialized mutex to begin with.

In other words,

> 
> diff --git a/src/util/threads-pthread.h b/src/util/threads-pthread.h
> index b25d0c2..ff50253 100644
> --- a/src/util/threads-pthread.h
> +++ b/src/util/threads-pthread.h
> @@ -23,6 +23,11 @@
>  
>  #include <pthread.h>
>  
> +#define VIR_MUTEX_INITIALIZER           \
> +{                                       \
> +    .lock = PTHREAD_MUTEX_INITIALIZER   \
> +}
> +

ACK to this hunk,

>  struct virMutex {
>      pthread_mutex_t lock;
>  };
> diff --git a/src/util/threads-win32.h b/src/util/threads-win32.h
> index bb7c455..cfadbe4 100644
> --- a/src/util/threads-win32.h
> +++ b/src/util/threads-win32.h
> @@ -23,6 +23,11 @@
>  
>  #include <windows.h>
>  
> +#define VIR_MUTEX_INITIALIZER                    \
> +{                                                \
> +    .lock = CreateMutex(NULL, FALSE, NULL)       \
> +}
> +

NAK to this hunk.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110420/a477f391/attachment-0001.sig>


More information about the libvir-list mailing list