Fix errors in the recently moved time calculations. (#395203, Chris
authorMatthias Clasen <mclasen@redhat.com>
Fri, 12 Jan 2007 05:55:16 +0000 (05:55 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 12 Jan 2007 05:55:16 +0000 (05:55 +0000)
2007-01-12  Matthias Clasen  <mclasen@redhat.com>

        * gthread/gthread-posix.c:
        * glib/gtimer.c:
        * glib/gthread.c: Fix errors in the recently moved
        time calculations.  (#395203, Chris Wilson)

svn path=/trunk/; revision=5244

ChangeLog
glib/gthread.c
glib/gtimer.c
gthread/gthread-posix.c

index 210859f..d4979ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-01-12  Matthias Clasen  <mclasen@redhat.com>
+
+       * gthread/gthread-posix.c:
+       * glib/gtimer.c:
+       * glib/gthread.c: Fix errors in the recently moved
+       time calculations.  (#395203, Chris Wilson)
+
 2007-01-10  Matthias Clasen  <mclasen@redhat.com>
 
        * configure.in: Actually link gthread against librt.
index a2fa8b9..de8855f 100644 (file)
@@ -557,7 +557,7 @@ gettime (void)
 
   gettimeofday (&tv, NULL);
 
-  return tv.tv_sec * 1e9 + tv.tv_usec * 1000; 
+  return (guint64) tv.tv_sec * 1000000000 + tv.tv_usec * 1000; 
 #endif
 }
 
index bedaf47..be1dc26 100644 (file)
@@ -149,10 +149,10 @@ g_timer_elapsed (GTimer *timer,
 
   elapsed = timer->end - timer->start;
 
-  total = elapsed / 1e7;
+  total = elapsed / 1e9;
 
   if (microseconds)
-    *microseconds = (elapsed / 10) % 1000000;
+    *microseconds = (elapsed / 1000) % 1000000;
 
   return total;
 }
index d05165c..124d452 100644 (file)
@@ -429,18 +429,19 @@ g_thread_equal_posix_impl (gpointer thread1, gpointer thread2)
 static guint64
 g_gettime_posix_impl (void)
 {
+#define G_NSEC_PER_SEC 100000000000
 #ifdef USE_CLOCK_GETTIME 
   struct timespec tv;
 
   clock_gettime (posix_clock, &tv);
 
-  return tv.tv_sec * 1e9 + tv.tv_nsec;
+  return (guint64) tv.tv_sec * G_NSEC_PER_SEC + tv.tv_nsec;
 #else
   struct timeval tv;
 
   gettimeofday (&tv, NULL);
 
-  return tv.tv_sec * 1e9 + tv.tv_usec * 1000; 
+  return (guint64) tv.tv_sec * G_NSEC_PER_SEC + tv.tv_usec * 1000; 
 #endif
 }