[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-4.0-testing] xenstore: Fix cleanup_pop() definition for some (buggy) pthread.h headers.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1273749735 -3600
# Node ID 61cc8ab4d629a5bee7ed931f6bbaf6a6070708bf
# Parent  8c7215e808647704b3616a84a53a4d11f0451a20
xenstore: Fix cleanup_pop() definition for some (buggy) pthread.h headers.

Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
xen-unstable changeset:   21374:9d53864d7be6
xen-unstable date:        Thu May 13 12:21:16 2010 +0100
---
 tools/xenstore/xs.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff -r 8c7215e80864 -r 61cc8ab4d629 tools/xenstore/xs.c
--- a/tools/xenstore/xs.c       Thu May 13 10:25:45 2010 +0100
+++ b/tools/xenstore/xs.c       Thu May 13 12:22:15 2010 +0100
@@ -85,8 +85,14 @@ struct xs_handle {
 #define mutex_unlock(m)                pthread_mutex_unlock(m)
 #define condvar_signal(c)      pthread_cond_signal(c)
 #define condvar_wait(c,m,hnd)  pthread_cond_wait(c,m)
-#define cleanup_push(f, a)     pthread_cleanup_push((void (*)(void *))(f), 
(void *)(a))
-#define cleanup_pop(run)       pthread_cleanup_pop(run)
+#define cleanup_push(f, a)     \
+    pthread_cleanup_push((void (*)(void *))(f), (void *)(a))
+/*
+ * Some definitions of pthread_cleanup_pop() are a macro starting with an
+ * end-brace. GCC then complains if we immediately precede that with a label.
+ * Hence we insert a dummy statement to appease the compiler in this situation.
+ */
+#define cleanup_pop(run)        ((void)0); pthread_cleanup_pop(run)
 
 static void *read_thread(void *arg);
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.