From: Ryan Lortie Date: Wed, 3 Nov 2010 02:03:08 +0000 (-0400) Subject: GMainContext: store real time as int64 X-Git-Tag: 2.27.3~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e4ad3442c042431918de178c5dc29ce6abb31ff2;p=platform%2Fupstream%2Fglib.git GMainContext: store real time as int64 --- diff --git a/glib/gmain.c b/glib/gmain.c index 1b84dd8..b182c66 100644 --- a/glib/gmain.c +++ b/glib/gmain.c @@ -266,8 +266,8 @@ struct _GMainContext gint64 time; gboolean time_is_fresh; - GTimeVal current_time; - gboolean current_time_is_fresh; + gint64 real_time; + gboolean real_time_is_fresh; }; struct _GSourceCallback @@ -609,7 +609,7 @@ g_main_context_new (void) context->pending_dispatches = g_ptr_array_new (); context->time_is_fresh = FALSE; - context->current_time_is_fresh = FALSE; + context->real_time_is_fresh = FALSE; #ifdef G_THREADS_ENABLED if (g_thread_supported ()) @@ -2516,7 +2516,7 @@ g_main_context_prepare (GMainContext *context, LOCK_CONTEXT (context); context->time_is_fresh = FALSE; - context->current_time_is_fresh = FALSE; + context->real_time_is_fresh = FALSE; if (context->in_check_or_prepare) { @@ -2682,7 +2682,7 @@ g_main_context_query (GMainContext *context, if (*timeout != 0) { context->time_is_fresh = FALSE; - context->current_time_is_fresh = FALSE; + context->real_time_is_fresh = FALSE; } } @@ -3421,13 +3421,14 @@ g_source_get_current_time (GSource *source, LOCK_CONTEXT (context); - if (!context->current_time_is_fresh) + if (!context->real_time_is_fresh) { - g_get_current_time (&context->current_time); - context->current_time_is_fresh = TRUE; + context->real_time = g_get_real_time (); + context->real_time_is_fresh = TRUE; } - *timeval = context->current_time; + timeval->tv_sec = context->real_time / 1000000; + timeval->tv_usec = context->real_time % 1000000; UNLOCK_CONTEXT (context); }