Fix g_cond_timed_wait() timeout with !CLOCK_MONOTONIC
authorBenjamin Gilbert <bgilbert@backtick.net>
Thu, 9 Oct 2014 04:07:36 +0000 (00:07 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 10 Oct 2014 10:41:55 +0000 (06:41 -0400)
g_get_monotonic_time() and g_get_real_time() now always use different
clocks, so we cannot avoid correcting for their offset.  Fixes failure
to time out on Mac OS X.

https://bugzilla.gnome.org/show_bug.cgi?id=738197

glib/deprecated/gthread-deprecated.c

index 47a1fbb..1dec719 100644 (file)
@@ -1564,16 +1564,10 @@ g_cond_timed_wait (GCond    *cond,
   end_time *= 1000000;
   end_time += abs_time->tv_usec;
 
-#ifdef CLOCK_MONOTONIC
   /* would be nice if we had clock_rtoffset, but that didn't seem to
    * make it into the kernel yet...
    */
   end_time += g_get_monotonic_time () - g_get_real_time ();
-#else
-  /* if CLOCK_MONOTONIC is not defined then g_get_montonic_time() and
-   * g_get_real_time() are returning the same clock, so don't bother...
-   */
-#endif
 
   return g_cond_wait_until (cond, mutex, end_time);
 }