view mercurial/worker.py @ 18635:fed06dd07665

worker: count the number of CPUs This works on the major platforms, and falls back to a safe guess of 1 elsewhere.
author Bryan O'Sullivan <bryano@fb.com>
date Sat, 09 Feb 2013 15:22:12 -0800
parents
children dcb27c153a40
line wrap: on
line source

# 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