]> granicus.if.org Git - python/commitdiff
Issue #15413: os.times() had disappeared under Windows.
authorAntoine Pitrou <solipsis@pitrou.net>
Tue, 24 Jul 2012 19:23:53 +0000 (21:23 +0200)
committerAntoine Pitrou <solipsis@pitrou.net>
Tue, 24 Jul 2012 19:23:53 +0000 (21:23 +0200)
Misc/NEWS
Modules/posixmodule.c

index 7bf89f8a45f2538cd1ce80b12121ad1db1924667..e9f04de2299e3afc22534a531fa6881439f77e87 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -52,6 +52,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #15413: os.times() had disappeared under Windows.
+
 - Issue #15402: An issue in the struct module that caused sys.getsizeof to
   return incorrect results for struct.Struct instances has been fixed.
   Initial patch by Serhiy Storchaka.
index b99a5fe01e50f7cb65be565fcf8e32ada5558b95..bbf9baf2c6065d222ae4f2e3f69a9bffa40dc14b 100644 (file)
@@ -7453,8 +7453,11 @@ static PyStructSequence_Desc times_result_desc = {
 
 static PyTypeObject TimesResultType;
 
+#ifdef MS_WINDOWS
+#define HAVE_TIMES  /* mandatory, for the method table */
+#endif
 
-#if defined(HAVE_TIMES) || defined(MS_WINDOWS)
+#ifdef HAVE_TIMES
 
 static PyObject *
 build_times_result(double user, double system,
@@ -7492,10 +7495,6 @@ Return an object containing floating point numbers indicating process\n\
 times.  The object behaves like a named tuple with these fields:\n\
   (utime, stime, cutime, cstime, elapsed_time)");
 
-#endif
-
-
-#ifdef HAVE_TIMES
 #if defined(PYCC_VACPP) && defined(PYOS_OS2)
 static long
 system_uptime(void)
@@ -7520,26 +7519,6 @@ posix_times(PyObject *self, PyObject *noargs)
                          (double)0 /* t.tms_cstime / HZ */,
                          (double)system_uptime() / 1000);
 }
-#else /* not OS2 */
-#define NEED_TICKS_PER_SECOND
-static long ticks_per_second = -1;
-static PyObject *
-posix_times(PyObject *self, PyObject *noargs)
-{
-    struct tms t;
-    clock_t c;
-    errno = 0;
-    c = times(&t);
-    if (c == (clock_t) -1)
-        return posix_error();
-    return build_times_result(
-                         (double)t.tms_utime / ticks_per_second,
-                         (double)t.tms_stime / ticks_per_second,
-                         (double)t.tms_cutime / ticks_per_second,
-                         (double)t.tms_cstime / ticks_per_second,
-                         (double)c / ticks_per_second);
-}
-#endif /* not OS2 */
 #elif defined(MS_WINDOWS)
 static PyObject *
 posix_times(PyObject *self, PyObject *noargs)
@@ -7562,8 +7541,29 @@ posix_times(PyObject *self, PyObject *noargs)
         (double)0,
         (double)0);
 }
+#else /* Neither Windows nor OS/2 */
+#define NEED_TICKS_PER_SECOND
+static long ticks_per_second = -1;
+static PyObject *
+posix_times(PyObject *self, PyObject *noargs)
+{
+    struct tms t;
+    clock_t c;
+    errno = 0;
+    c = times(&t);
+    if (c == (clock_t) -1)
+        return posix_error();
+    return build_times_result(
+                         (double)t.tms_utime / ticks_per_second,
+                         (double)t.tms_stime / ticks_per_second,
+                         (double)t.tms_cutime / ticks_per_second,
+                         (double)t.tms_cstime / ticks_per_second,
+                         (double)c / ticks_per_second);
+}
 #endif
 
+#endif /* HAVE_TIMES */
+
 
 #ifdef HAVE_GETSID
 PyDoc_STRVAR(posix_getsid__doc__,