]> granicus.if.org Git - python/commitdiff
Issue #17914: Use os.cpu_count() instead of multiprocessing.cpu_count() where
authorCharles-François Natali <cf.natali@gmail.com>
Fri, 28 Jun 2013 17:25:45 +0000 (19:25 +0200)
committerCharles-François Natali <cf.natali@gmail.com>
Fri, 28 Jun 2013 17:25:45 +0000 (19:25 +0200)
applicable.

Doc/library/multiprocessing.rst
Lib/concurrent/futures/process.py
Lib/multiprocessing/pool.py
Lib/test/regrtest.py

index 2c1ec9bef8424a09d6ad2a43fc33c98985b60fd2..95d1b1f1c91866dd26b9240fc61ba042a9e6c959 100644 (file)
@@ -1664,7 +1664,7 @@ with the :class:`Pool` class.
    callbacks and has a parallel map implementation.
 
    *processes* is the number of worker processes to use.  If *processes* is
-   ``None`` then the number returned by :func:`cpu_count` is used.  If
+   ``None`` then the number returned by :func:`os.cpu_count` is used.  If
    *initializer* is not ``None`` then each worker process will call
    ``initializer(*initargs)`` when it starts.
 
index 3c20b934c25432e0f5bc8669faa9aab53576597b..abb99d6b917bbfd97745ca9f3e0196a30c888cd0 100644 (file)
@@ -331,7 +331,7 @@ class ProcessPoolExecutor(_base.Executor):
         _check_system_limits()
 
         if max_workers is None:
-            self._max_workers = multiprocessing.cpu_count()
+            self._max_workers = os.cpu_count() or 1
         else:
             self._max_workers = max_workers
 
index bcf8a378de94e0b28a5a3c840f41308312d4d831..8082ad6f3455dc376889a1e3264c392d468aefad 100644 (file)
@@ -17,10 +17,11 @@ import threading
 import queue
 import itertools
 import collections
+import os
 import time
 import traceback
 
-from multiprocessing import Process, cpu_count, TimeoutError
+from multiprocessing import Process, TimeoutError
 from multiprocessing.util import Finalize, debug
 
 #
@@ -147,10 +148,7 @@ class Pool(object):
         self._initargs = initargs
 
         if processes is None:
-            try:
-                processes = cpu_count()
-            except NotImplementedError:
-                processes = 1
+            processes = os.cpu_count() or 1
         if processes < 1:
             raise ValueError("Number of processes must be at least 1")
 
index e6eef1640fa2d9ff7d6a40f73e4ac9ee75d09223..bd816dd2d0dc36051842bdd7d9ef4b5c5f7ee343 100755 (executable)
@@ -508,12 +508,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
         elif o in ('-j', '--multiprocess'):
             use_mp = int(a)
             if use_mp <= 0:
-                try:
-                    import multiprocessing
-                    # Use all cores + extras for tests that like to sleep
-                    use_mp = 2 + multiprocessing.cpu_count()
-                except (ImportError, NotImplementedError):
-                    use_mp = 3
+                # Use all cores + extras for tests that like to sleep
+                use_mp = 2 + (os.cpu_count() or 1)
             if use_mp == 1:
                 use_mp = None
         elif o == '--header':