Bug 527214 – g_timer_elapsed() returns random values.
authorMatthias Clasen <matthiasc@src.gnome.org>
Sun, 18 May 2008 19:15:32 +0000 (19:15 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sun, 18 May 2008 19:15:32 +0000 (19:15 +0000)
        * glib/gtimer.c (g_timer_new()):
        Print warning if g_thread_init() has not been called yet.
        Patch by Mathias Hasselmann

svn path=/trunk/; revision=6907

ChangeLog
docs/reference/ChangeLog
docs/reference/glib/tmpl/timers.sgml
glib/gtimer.c

index 517699d..f48fbf7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-05-18  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 527214 – g_timer_elapsed() returns random values.
+
+       * glib/gtimer.c (g_timer_new()):
+       Print warning if g_thread_init() has not been called yet. 
+       Patch by Mathias Hasselmann
+
 2008-05-12  Jeffrey Stedfast  <fejj@novell.com>
 
        * glib/gchecksum.c (g_checksum_reset): New function to reset the
index c14efa7..dcfdebb 100644 (file)
@@ -1,3 +1,11 @@
+2008-05-18  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 527214 – g_timer_elapsed() returns random values.
+
+       * docs/reference/glib/tmpl/timers.sgml:
+       Add notes regarding gthreads dependency. 
+       Patch by Mathias Hasselmann
+
 2008-05-17  Matthias Clasen  <mclasen@redhat.com>
 
        * gio/gio-sections.txt: Add new api
index d346e3f..5229095 100644 (file)
@@ -10,6 +10,10 @@ keep track of elapsed time
 This is done somewhat differently on different platforms, and can be tricky to
 get exactly right, so #GTimer provides a portable/convenient interface.
 </para>
+<note><para>
+#GTimer internally uses the threading API. Therefore g_thread_init() has to be
+called before creating #GTimer instances.
+</para></note>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
@@ -30,6 +34,9 @@ Opaque datatype that records a start time.
 Creates a new timer, and starts timing (i.e. g_timer_start() is implicitly
 called for you).
 </para>
+<note><para>
+Call g_thread_init() before using this function.
+</para></note>
 
 @Returns: a new #GTimer.
 
index a29e39d..83f45ee 100644 (file)
@@ -69,6 +69,10 @@ g_timer_new (void)
 {
   GTimer *timer;
 
+  if (!g_thread_supported ())
+    g_warning ("g_timer_new() called, but GThreads not initialized yet. "
+               "Call g_thread_init ().");
+
   timer = g_new (GTimer, 1);
   timer->active = TRUE;