From: Ondřej Surý Date: Thu, 19 Sep 2024 15:58:19 +0000 (+0200) Subject: Use uv_available_parallelism() if available X-Git-Tag: v9.21.2~23^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26e7358b16e9288f894c49c81259279c4cf3e3ec;p=thirdparty%2Fbind9.git Use uv_available_parallelism() if available Instead of cooking up our own code for getting the number of available CPUs for named to use, make use of uv_available_parallelism() from libuv >= 1.44.0. --- diff --git a/lib/isc/os.c b/lib/isc/os.c index fced9919031..97b5cac0246 100644 --- a/lib/isc/os.c +++ b/lib/isc/os.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "os_p.h" @@ -24,6 +25,20 @@ static unsigned int isc__os_ncpus = 0; static unsigned long isc__os_cacheline = ISC_OS_CACHELINE_SIZE; static mode_t isc__os_umask = 0; +/* + * The affinity support for non-Linux is in the review in the upstream + * yet, but will be included in the upcoming version of libuv. + */ +#if (UV_VERSION_HEX >= UV_VERSION(1, 44, 0) && defined(__linux__)) || \ + UV_VERSION_HEX > UV_VERSION(1, 48, 0) + +static void +ncpus_initialize(void) { + isc__os_ncpus = uv_available_parallelism(); +} + +#else /* UV_VERSION_HEX >= UV_VERSION(1, 44, 0) */ + #ifdef HAVE_SYSCONF #include @@ -151,6 +166,8 @@ ncpus_initialize(void) { } } +#endif /* UV_VERSION_HEX >= UV_VERSION(1, 38, 0) */ + static void umask_initialize(void) { isc__os_umask = umask(0);