[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFH PATCH] vhost-user-test: fix g_cond_wait_until compat i
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [RFH PATCH] vhost-user-test: fix g_cond_wait_until compat implementation |
Date: |
Tue, 28 Jun 2016 19:22:49 +0200 |
This fixes compilation with glib versions up to 2.30, such
as the one in CentOS 6.
Even with this patch the test fails though:
ERROR:/tmp/qemu-test/src/tests/vhost-user-test.c:165:wait_for_fds: assertion
failed: (s->fds_num)
Signed-off-by: Paolo Bonzini <address@hidden>
---
tests/vhost-user-test.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 8b2164b..4de64df 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -127,21 +127,24 @@ typedef struct TestServer {
int fds_num;
int fds[VHOST_MEMORY_MAX_NREGIONS];
VhostUserMemory memory;
- GMutex data_mutex;
- GCond data_cond;
+ CompatGMutex data_mutex;
+ CompatGCond data_cond;
int log_fd;
uint64_t rings;
} TestServer;
#if !GLIB_CHECK_VERSION(2, 32, 0)
-static gboolean g_cond_wait_until(CompatGCond cond, CompatGMutex mutex,
+static gboolean g_cond_wait_until(CompatGCond *cond, CompatGMutex *mutex,
gint64 end_time)
{
gboolean ret = FALSE;
end_time -= g_get_monotonic_time();
GTimeVal time = { end_time / G_TIME_SPAN_SECOND,
end_time % G_TIME_SPAN_SECOND };
- ret = g_cond_timed_wait(cond, mutex, &time);
+ g_assert(mutex->once.status != G_ONCE_STATUS_PROGRESS);
+ g_once(&cond->once, do_g_cond_new, NULL);
+ ret = g_cond_timed_wait((GCond *) cond->once.retval,
+ (GMutex *) mutex->once.retval, &time);
return ret;
}
#endif
--
2.7.4
- [Qemu-devel] [RFH PATCH] vhost-user-test: fix g_cond_wait_until compat implementation,
Paolo Bonzini <=