gmain: abort if monotonic time is unsupported

We now depend on CLOCK_MONOTONIC, but it's possible that people may
attempt to run GLib on systems where it isn't supported at runtime.

Check the return value of clock_gettime() and abort() if it fails in
order to save these people from wasting time on debugging a tricky
issue.

https://bugzilla.gnome.org/show_bug.cgi?id=670144
This commit is contained in:
Ryan Lortie 2014-02-21 10:20:11 -05:00
parent 6fcaa7aa96
commit 03a43c290e

View File

@ -2715,8 +2715,12 @@ gint64
g_get_monotonic_time (void) g_get_monotonic_time (void)
{ {
struct timespec ts; struct timespec ts;
gint result;
clock_gettime (CLOCK_MONOTONIC, &ts); result = clock_gettime (CLOCK_MONOTONIC, &ts);
if G_UNLIKELY (result != 0)
g_error ("GLib requires working CLOCK_MONOTONIC");
return (((gint64) ts.tv_sec) * 1000000) + (ts.tv_nsec / 1000); return (((gint64) ts.tv_sec) * 1000000) + (ts.tv_nsec / 1000);
} }