Adapt the recent 'num_processors' change to MS-Windows

* nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_nproc): Omit nproc.

* src/w32.c (num_processors): New function.
* src/w32proc.c (Fw32_get_nproc): Remove.
This commit is contained in:
Eli Zaretskii 2021-10-11 15:56:31 +03:00
parent 7cb4637923
commit 1a1b206a8b
3 changed files with 12 additions and 11 deletions

View file

@ -73,3 +73,4 @@ OMIT_GNULIB_MODULE_lchmod = true
OMIT_GNULIB_MODULE_futimens = true OMIT_GNULIB_MODULE_futimens = true
OMIT_GNULIB_MODULE_utimensat = true OMIT_GNULIB_MODULE_utimensat = true
OMIT_GNULIB_MODULE_file-has-acl = true OMIT_GNULIB_MODULE_file-has-acl = true
OMIT_GNULIB_MODULE_nproc = true

View file

@ -39,6 +39,7 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
#include <sys/time.h> #include <sys/time.h>
#include <sys/utime.h> #include <sys/utime.h>
#include <math.h> #include <math.h>
#include <nproc.h>
/* Include (most) CRT headers *before* ms-w32.h. */ /* Include (most) CRT headers *before* ms-w32.h. */
#include <ms-w32.h> #include <ms-w32.h>
@ -1962,6 +1963,16 @@ w32_get_nproc (void)
return num_of_processors; return num_of_processors;
} }
/* Emulate Gnulib's 'num_processors'. We cannot use the Gnulib
version because it unconditionally calls APIs that aren't available
on old MS-Windows versions. */
unsigned long
num_processors (enum nproc_query query)
{
/* We ignore QUERY. */
return w32_get_nproc ();
}
static void static void
sample_system_load (ULONGLONG *idle, ULONGLONG *kernel, ULONGLONG *user) sample_system_load (ULONGLONG *idle, ULONGLONG *kernel, ULONGLONG *user)
{ {

View file

@ -3878,15 +3878,6 @@ w32_compare_strings (const char *s1, const char *s2, char *locname,
return val - 2; return val - 2;
} }
/* FIXME: Remove, merging any of its special features into num-processors. */
DEFUN ("w32-get-nproc", Fw32_get_nproc,
Sw32_get_nproc, 0, 0, 0,
doc: /* Return the number of system's processor execution units. */)
(void)
{
return make_fixnum (w32_get_nproc ());
}
void void
syms_of_ntproc (void) syms_of_ntproc (void)
@ -3921,8 +3912,6 @@ syms_of_ntproc (void)
defsubr (&Sw32_get_keyboard_layout); defsubr (&Sw32_get_keyboard_layout);
defsubr (&Sw32_set_keyboard_layout); defsubr (&Sw32_set_keyboard_layout);
defsubr (&Sw32_get_nproc);
DEFVAR_LISP ("w32-quote-process-args", Vw32_quote_process_args, DEFVAR_LISP ("w32-quote-process-args", Vw32_quote_process_args,
doc: /* Non-nil enables quoting of process arguments to ensure correct parsing. doc: /* Non-nil enables quoting of process arguments to ensure correct parsing.
Because Windows does not directly pass argv arrays to child processes, Because Windows does not directly pass argv arrays to child processes,