Skip to content

Commit

Permalink
Fix g_cond_timed_wait() timeout with !CLOCK_MONOTONIC
Browse files Browse the repository at this point in the history
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
  • Loading branch information
bgilbert authored and Matthias Clasen committed Oct 10, 2014
1 parent 549e7b0 commit 0bfea5e
Showing 1 changed file with 0 additions and 6 deletions.
6 changes: 0 additions & 6 deletions glib/deprecated/gthread-deprecated.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down

0 comments on commit 0bfea5e

Please sign in to comment.