glib/gthread.c (gettime) GetSystemTimeAsFileTime() returns 100s of

2007-01-16  Tor Lillqvist  <tml@novell.com>

	* glib/gthread.c (gettime)
	* gthread-win32.c (g_gettime_win32_impl):
	GetSystemTimeAsFileTime() returns 100s of nanoseconds since 1601,
	so offset to Unix epoch (1970) and multiply by 100 to get
	nanoseconds which is what we want.


svn path=/trunk/; revision=5277
This commit is contained in:
Tor Lillqvist 2007-01-16 13:57:05 +00:00 committed by Tor Lillqvist
parent 5d65767801
commit 098d17a4fc
4 changed files with 15 additions and 4 deletions

View File

@ -1,8 +1,8 @@
2007-01-16 Tor Lillqvist <tml@novell.com> 2007-01-16 Tor Lillqvist <tml@novell.com>
* glib/gthread.c (gettime): GetSystemTimeAsFileTime() returns 100s * glib/gthread.c (gettime): GetSystemTimeAsFileTime() returns 100s
of nanoseconds, so multiply by 100 to get nanoseconds which is of nanoseconds since 1601, so offset to Unix epoch (1970) and
what we want. multiply by 100 to get nanoseconds which is what we want.
2007-01-15 Tor Lillqvist <tml@novell.com> 2007-01-15 Tor Lillqvist <tml@novell.com>

View File

@ -554,7 +554,12 @@ gettime (void)
#ifdef G_OS_WIN32 #ifdef G_OS_WIN32
guint64 v; guint64 v;
/* Returns 100s of nanoseconds since start of 1601 */
GetSystemTimeAsFileTime ((FILETIME *)&v); GetSystemTimeAsFileTime ((FILETIME *)&v);
/* Offset to Unix epoch */
v -= G_GINT64_CONSTANT (116444736000000000);
/* Convert to nanoseconds */
v *= 100; v *= 100;
return v; return v;

View File

@ -1,8 +1,9 @@
2007-01-16 Tor Lillqvist <tml@novell.com> 2007-01-16 Tor Lillqvist <tml@novell.com>
* gthread-win32.c (g_gettime_win32_impl): * gthread-win32.c (g_gettime_win32_impl):
GetSystemTimeAsFileTime() returns 100s of nanoseconds, so multiply GetSystemTimeAsFileTime() returns 100s of nanoseconds since 1601,
by 100 to get nanoseconds which is what we want. so offset to Unix epoch (1970) and multiply by 100 to get
nanoseconds which is what we want.
2006-12-28 Tor Lillqvist <tml@novell.com> 2006-12-28 Tor Lillqvist <tml@novell.com>

View File

@ -550,7 +550,12 @@ g_gettime_win32_impl (void)
{ {
guint64 v; guint64 v;
/* Returns 100s of nanoseconds since start of 1601 */
GetSystemTimeAsFileTime ((FILETIME *)&v); GetSystemTimeAsFileTime ((FILETIME *)&v);
/* Offset to Unix epoch */
v -= G_GINT64_CONSTANT (116444736000000000);
/* Convert to nanoseconds */
v *= 100; v *= 100;
return v; return v;