n >= 1 implies MIN (n, 1) == 1.

2025-03-20  Bruno Haible  <br...@clisp.org>

        nproc: Optimize.
        * lib/nproc.c (num_processors): Optimize away the
        num_processors_ignoring_omp (query) call when possible.

diff --git a/lib/nproc.c b/lib/nproc.c
index 051426a6f0..83439aa0eb 100644
--- a/lib/nproc.c
+++ b/lib/nproc.c
@@ -434,6 +434,9 @@ num_processors (enum nproc_query query)
       query = NPROC_CURRENT;
     }
   /* Here query is one of NPROC_ALL, NPROC_CURRENT.  */
+  if (omp_env_limit == 1)
+    /* No need to even call num_processors_ignoring_omp (query).  */
+    return 1;
   {
     unsigned long nprocs = num_processors_ignoring_omp (query);
     return MIN (nprocs, omp_env_limit);




Reply via email to