summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1999-02-16 14:37:28 (GMT)
committerGuido van Rossum <guido@python.org>1999-02-16 14:37:28 (GMT)
commitb8c3cbdd50badf2ecf5da9d62a91959162695fa1 (patch)
treecabc39c76a0dff5c719ae37408abcf9fefb13b53
parentcce8d2a85a207443257f768ad11d7be833d056c6 (diff)
downloadcpython-b8c3cbdd50badf2ecf5da9d62a91959162695fa1.zip
cpython-b8c3cbdd50badf2ecf5da9d62a91959162695fa1.tar.gz
cpython-b8c3cbdd50badf2ecf5da9d62a91959162695fa1.tar.bz2
Fixed totally bogus conversion factors used in the Win32 version of
os.times().
-rw-r--r--Modules/posixmodule.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 013e3b1..8dc079e 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -2193,11 +2193,18 @@ posix_times(self, args)
if (!PyArg_NoArgs(args))
return NULL;
hProc = GetCurrentProcess();
- GetProcessTimes(hProc,&create, &exit, &kernel, &user);
+ GetProcessTimes(hProc, &create, &exit, &kernel, &user);
+ /* The fields of a FILETIME structure are the hi and lo part
+ of a 64-bit value expressed in 100 nanosecond units.
+ 1e7 is one second in such units; 1e-7 the inverse.
+ 429.4967296 is 2**32 / 1e7 or 2**32 * 1e-7.
+ */
return Py_BuildValue(
"ddddd",
- (double)(kernel.dwHighDateTime*2E32+kernel.dwLowDateTime)/2E6,
- (double)(user.dwHighDateTime*2E32+user.dwLowDateTime) / 2E6,
+ (double)(kernel.dwHighDateTime*429.4967296 +
+ kernel.dwLowDateTime*1e-7),
+ (double)(user.dwHighDateTime*429.4967296 +
+ user.dwLowDateTime*1e-7),
(double)0,
(double)0,
(double)0);