[pypy-svn] r31404 - pypy/dist/pypy/module/rctime
rhymes at codespeak.net
rhymes at codespeak.net
Sat Aug 19 15:59:18 CEST 2006
Author: rhymes
Date: Sat Aug 19 15:59:16 2006
New Revision: 31404
Modified:
pypy/dist/pypy/module/rctime/interp_time.py
Log:
clock() for Windows
Modified: pypy/dist/pypy/module/rctime/interp_time.py
==============================================================================
--- pypy/dist/pypy/module/rctime/interp_time.py (original)
+++ pypy/dist/pypy/module/rctime/interp_time.py Sat Aug 19 15:59:16 2006
@@ -33,6 +33,7 @@
("tm_yday", c_int), ("tm_isdst", c_int), ("tm_gmtoff", c_long),
("tm_zone", c_char_p)])
elif _WIN:
+ from ctypes import wintypes
CConfig.tm = ctypes_platform.Struct("struct tm", [("tm_sec", c_int),
("tm_min", c_int), ("tm_hour", c_int), ("tm_mday", c_int),
("tm_mon", c_int), ("tm_year", c_int), ("tm_wday", c_int),
@@ -277,22 +278,22 @@
if _POSIX:
res = float(float(libc.clock()) / CLOCKS_PER_SEC)
return space.wrap(res)
- # elif _MS_WINDOWS:
- # divisor = 0.0
- # ctrStart = _LARGE_INTEGER()
- # now = _LARGE_INTEGER()
- #
- # if divisor == 0.0:
- # freq = _LARGE_INTEGER()
- # windll.kernel32.QueryPerformanceCounter(byref(ctrStart))
- # res = windll.kernel32.QueryPerformanceCounter(byref(freq))
- # if not res or freq.QuadPart == 0:
- # return float(windll.msvcrt.clock())
- # divisor = float(freq.QuadPart)
- #
- # windll.kernel32.QueryPerformanceCounter(byref(now))
- # diff = float(now.QuadPart - ctrStart.QuadPart)
- # return float(diff / divisor)
+ elif _WIN:
+ divisor = 0.0
+ ctrStart = wintypes.LARGE_INTEGER()
+ now = wintypes.LARGE_INTEGER()
+
+ if divisor == 0.0:
+ freq = wintypes.LARGE_INTEGER()
+ windll.kernel32.QueryPerformanceCounter(byref(ctrStart))
+ res = windll.kernel32.QueryPerformanceCounter(byref(freq))
+ if not res or not freq:
+ return space.wrap(float(windll.msvcrt.clock()))
+ divisor = float(freq.value)
+
+ windll.kernel32.QueryPerformanceCounter(byref(now))
+ diff = float(now.value - ctrStart.value)
+ return space.wrap(float(diff / divisor))
def ctime(space, w_seconds=None):
"""ctime([seconds]) -> string
More information about the Pypy-commit
mailing list