Commit 86a32e7d authored by Tor Lillqvist's avatar Tor Lillqvist Committed by Tor Lillqvist

On Win32, use GetSystemTimeAsFileTime() instead of GetTickCount().

2005-03-20  Tor Lillqvist  <tml@novell.com>

	* glib/gtimer.c: On Win32, use GetSystemTimeAsFileTime() instead
	of GetTickCount(). (#159507)
parent 398008da
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gtimer.c: On Win32, use GetSystemTimeAsFileTime() instead
of GetTickCount(). (#159507)
* glib/gmessages.c (g_log_default_handler)
* glib/gutils.c (g_get_prgname): Move the Win32 code that asks the
program name from the system to g_get_prgname(). Do output the pid
......
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gtimer.c: On Win32, use GetSystemTimeAsFileTime() instead
of GetTickCount(). (#159507)
* glib/gmessages.c (g_log_default_handler)
* glib/gutils.c (g_get_prgname): Move the Win32 code that asks the
program name from the system to g_get_prgname(). Do output the pid
......
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gtimer.c: On Win32, use GetSystemTimeAsFileTime() instead
of GetTickCount(). (#159507)
* glib/gmessages.c (g_log_default_handler)
* glib/gutils.c (g_get_prgname): Move the Win32 code that asks the
program name from the system to g_get_prgname(). Do output the pid
......
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gtimer.c: On Win32, use GetSystemTimeAsFileTime() instead
of GetTickCount(). (#159507)
* glib/gmessages.c (g_log_default_handler)
* glib/gutils.c (g_get_prgname): Move the Win32 code that asks the
program name from the system to g_get_prgname(). Do output the pid
......
......@@ -52,8 +52,8 @@
struct _GTimer
{
#ifdef G_OS_WIN32
DWORD start;
DWORD end;
guint64 start;
guint64 end;
#else /* !G_OS_WIN32 */
struct timeval start;
struct timeval end;
......@@ -64,7 +64,7 @@ struct _GTimer
#ifdef G_OS_WIN32
# define GETTIME(v) \
v = GetTickCount ()
GetSystemTimeAsFileTime ((FILETIME *)&v)
#else /* !G_OS_WIN32 */
# define GETTIME(v) \
gettimeofday (&v, NULL)
......@@ -123,7 +123,7 @@ void
g_timer_continue (GTimer *timer)
{
#ifdef G_OS_WIN32
DWORD elapsed;
guint64 elapsed;
#else
struct timeval elapsed;
#endif /* G_OS_WIN32 */
......@@ -176,7 +176,9 @@ g_timer_elapsed (GTimer *timer,
gulong *microseconds)
{
gdouble total;
#ifndef G_OS_WIN32
#ifdef G_OS_WIN32
gint64 elapsed;
#else
struct timeval elapsed;
#endif /* G_OS_WIN32 */
......@@ -184,23 +186,14 @@ g_timer_elapsed (GTimer *timer,
#ifdef G_OS_WIN32
if (timer->active)
timer->end = GetTickCount ();
GETTIME (timer->end);
/* Check for wraparound, which happens every 49.7 days. */
if (timer->end < timer->start)
total = (UINT_MAX - (timer->start - timer->end - 1)) / 1000.0;
else
total = (timer->end - timer->start) / 1000.0;
elapsed = timer->end - timer->start;
total = elapsed / 1e7;
if (microseconds)
{
if (timer->end < timer->start)
*microseconds =
((UINT_MAX - (timer->start - timer->end - 1)) % 1000) * 1000;
else
*microseconds =
((timer->end - timer->start) % 1000) * 1000;
}
*microseconds = (elapsed / 10) % 1000000;
#else /* !G_OS_WIN32 */
if (timer->active)
gettimeofday (&timer->end, NULL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment