[glib] GCond: check result of pthread_condattr_setclock()
- From: Ryan Lortie <desrt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] GCond: check result of pthread_condattr_setclock()
- Date: Fri, 21 Feb 2014 21:42:40 +0000 (UTC)
commit 5103c5d643f7e7de7983619204a25c3c774478e8
Author: Ryan Lortie <desrt desrt ca>
Date: Fri Feb 21 16:40:16 2014 -0500
GCond: check result of pthread_condattr_setclock()
Make sure this call succeeds, aborting if it doesn't
This will prevent people from having to waste time chasing down the problems
that would otherwise be caused by this silent failure.
glib/gthread-posix.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/glib/gthread-posix.c b/glib/gthread-posix.c
index 4a01f4d..c98c2d8 100644
--- a/glib/gthread-posix.c
+++ b/glib/gthread-posix.c
@@ -639,8 +639,13 @@ g_cond_impl_new (void)
gint status;
pthread_condattr_init (&attr);
-#if defined (HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined (CLOCK_MONOTONIC)
- pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
+
+#ifdef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP
+#elif defined (HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined (CLOCK_MONOTONIC)
+ if G_UNLIKELY ((status = pthread_condattr_setclock (&attr, CLOCK_MONOTONIC)) != 0)
+ g_thread_abort (status, "pthread_condattr_setclock");
+#else
+#error Cannot support GCond on your platform.
#endif
cond = malloc (sizeof (pthread_cond_t));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]