# HG changeset patch # User Bryan O'Sullivan # Date 1360452132 28800 # Node ID fed06dd07665515de823c912bc94b8de087af314 # Parent 4b5d37ca3c11e8166a82da8bef38d0b52f6f93e8 worker: count the number of CPUs This works on the major platforms, and falls back to a safe guess of 1 elsewhere. diff -r 4b5d37ca3c11 -r fed06dd07665 mercurial/worker.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/worker.py Sat Feb 09 15:22:12 2013 -0800 @@ -0,0 +1,29 @@ +# worker.py - master-slave parallelism support +# +# Copyright 2013 Facebook, Inc. +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2 or any later version. + +import os + +def countcpus(): + '''try to count the number of CPUs on the system''' + + # posix + try: + n = int(os.sysconf('SC_NPROCESSORS_ONLN')) + if n > 0: + return n + except (AttributeError, ValueError): + pass + + # windows + try: + n = int(os.environ['NUMBER_OF_PROCESSORS']) + if n > 0: + return n + except (KeyError, ValueError): + pass + + return 1