From 4b06cf6ce9f8c25be43895612b96674445a6442f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 18 May 2008 19:15:32 +0000 Subject: [PATCH] =?utf8?q?=20=20=20=20=20=20=20=20Bug=20527214=20=E2=80=93?= =?utf8?q?=20g=5Ftimer=5Felapsed()=20returns=20random=20values.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * 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 | 8 ++++++++ docs/reference/ChangeLog | 8 ++++++++ docs/reference/glib/tmpl/timers.sgml | 7 +++++++ glib/gtimer.c | 4 ++++ 4 files changed, 27 insertions(+) diff --git a/ChangeLog b/ChangeLog index 517699d..f48fbf7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-05-18 Matthias Clasen + + 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 * glib/gchecksum.c (g_checksum_reset): New function to reset the diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index c14efa7..dcfdebb 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,11 @@ +2008-05-18 Matthias Clasen + + 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 * gio/gio-sections.txt: Add new api diff --git a/docs/reference/glib/tmpl/timers.sgml b/docs/reference/glib/tmpl/timers.sgml index d346e3f..5229095 100644 --- a/docs/reference/glib/tmpl/timers.sgml +++ b/docs/reference/glib/tmpl/timers.sgml @@ -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. + +#GTimer internally uses the threading API. Therefore g_thread_init() has to be +called before creating #GTimer instances. + @@ -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). + +Call g_thread_init() before using this function. + @Returns: a new #GTimer. diff --git a/glib/gtimer.c b/glib/gtimer.c index a29e39d..83f45ee 100644 --- a/glib/gtimer.c +++ b/glib/gtimer.c @@ -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; -- 2.7.4