From: Martin Matuska Date: Tue, 23 Apr 2024 12:59:27 +0000 (+0200) Subject: zstd: Implement core detection on Windows X-Git-Tag: v3.7.4~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab27905ae7cd337cf30711fd36d287db1c1b92bb;p=thirdparty%2Flibarchive.git zstd: Implement core detection on Windows Fixes #2071 Co-authored-by: Mostyn Bramley-Moore --- diff --git a/libarchive/archive_write_add_filter_zstd.c b/libarchive/archive_write_add_filter_zstd.c index b49f45310..7ea3d18c9 100644 --- a/libarchive/archive_write_add_filter_zstd.c +++ b/libarchive/archive_write_add_filter_zstd.c @@ -277,6 +277,13 @@ archive_compressor_zstd_options(struct archive_write_filter *f, const char *key, if (threads == 0) { threads = sysconf(_SC_NPROCESSORS_ONLN); } +#elif !defined(__CYGWIN__) && defined(_WIN32_WINNT) && \ + _WIN32_WINNT >= 0x0601 /* _WIN32_WINNT_WIN7 */ + if (threads == 0) { + DWORD winCores = GetActiveProcessorCount( + ALL_PROCESSOR_GROUPS); + threads = (intmax_t)winCores; + } #endif if (threads < 0 || threads > INT_MAX) { return (ARCHIVE_WARN);