[libvirt] [PATCH 2/3] Avoid compiler warnings about int -> void * casts
Daniel P. Berrange
berrange at redhat.com
Tue Apr 5 15:03:08 UTC 2011
GCC is a little confused about the cast of beginthread/beginthreadex
from unsigned long -> void *. Go via an intermediate variable avoids
the bogus warning, and makes the code a little cleaner
* src/util/threads-win32.c: Avoid compiler warning in cast
---
src/util/threads-win32.c | 18 +++++++++++-------
1 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/util/threads-win32.c b/src/util/threads-win32.c
index ddb4737..5661437 100644
--- a/src/util/threads-win32.c
+++ b/src/util/threads-win32.c
@@ -262,6 +262,7 @@ int virThreadCreate(virThreadPtr thread,
void *opaque)
{
struct virThreadArgs *args;
+ uintptr_t ret;
if (VIR_ALLOC(args) < 0)
return -1;
@@ -271,17 +272,20 @@ int virThreadCreate(virThreadPtr thread,
thread->joinable = joinable;
if (joinable) {
- thread->thread = (HANDLE)_beginthreadex(NULL, 0,
- virThreadHelperJoinable,
- args, 0, NULL);
- if (thread->thread == 0)
+ ret = _beginthreadex(NULL, 0,
+ virThreadHelperJoinable,
+ args, 0, NULL);
+ if (ret == 0)
return -1;
} else {
- thread->thread = (HANDLE)_beginthread(virThreadHelperDaemon,
- 0, args);
- if (thread->thread == (HANDLE)-1L)
+ ret = _beginthread(virThreadHelperDaemon,
+ 0, args);
+ if (ret == -1L)
return -1;
}
+
+ thread->thread = (HANDLE)ret;
+
return 0;
}
--
1.7.4
More information about the libvir-list
mailing list