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 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list