gmain: abort if monotonic time is unsupported
authorRyan Lortie <desrt@desrt.ca>
Fri, 21 Feb 2014 15:20:11 +0000 (10:20 -0500)
committerRyan Lortie <desrt@desrt.ca>
Fri, 21 Feb 2014 21:42:21 +0000 (16:42 -0500)
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

glib/gmain.c

index e74590a..dbbc63d 100644 (file)
@@ -2715,8 +2715,12 @@ gint64
 g_get_monotonic_time (void)
 {
   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);
 }