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(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org