From: Nicolás Bértolo Date: Wed, 13 May 2020 19:22:17 +0000 (-0300) Subject: * Windows: Use NUMBER_OF_PROCESSORS environment variable. X-Git-Tag: emacs-28.0.90~2727^2~618 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d59607b68592fa709bd8466a3ac7300d280df83a;p=emacs.git * Windows: Use NUMBER_OF_PROCESSORS environment variable. * lisp/emacs-lisp/comp.el (comp-effective-async-max-jobs): Use NUMBER_OF_PROCESSORS environment variable if system is Windows NT, "nproc" if it is in PATH or a default of 1. --- diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index e5d3be6eed0..6c152136fb5 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -2302,9 +2302,14 @@ processes from `comp-async-compilations'" (if (zerop comp-async-jobs-number) (or comp-num-cpus (setf comp-num-cpus - ;; Half of the CPUs or at least one. - ;; FIXME portable? - (max 1 (/ (string-to-number (shell-command-to-string "nproc")) + ;; FIXME: we already have a function to determine + ;; the number of processors, see get_native_system_info in w32.c. + ;; The result needs to be exported to Lisp. + (max 1 (/ (cond ((eq 'windows-nt system-type) + (string-to-number (getenv "NUMBER_OF_PROCESSORS"))) + ((executable-find "nproc") + (string-to-number (shell-command-to-string "nproc"))) + (t 1)) 2)))) comp-async-jobs-number))