From 177f5ff3fa193a79ddb5f8e4d6b248f04c7c0053 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 16 Mar 2023 09:04:33 +0000 Subject: [PATCH] compress: Enable parallel compression for Zstandard if available Signed-off-by: Michael Tremer --- src/libpakfire/compress.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/libpakfire/compress.c b/src/libpakfire/compress.c index 43b19afa..dbe470d5 100644 --- a/src/libpakfire/compress.c +++ b/src/libpakfire/compress.c @@ -1148,6 +1148,27 @@ int pakfire_compress_create_archive(struct pakfire* pakfire, struct archive** ar goto ERROR; } } + +#if ARCHIVE_VERSION_NUMBER >= 3006000 + // Fetch numbers of processors + long processors = sysconf(_SC_NPROCESSORS_ONLN); + + if (processors > 1) { + r = pakfire_string_format(value, "%ld", processors); + if (r) { + ERROR(pakfire, "Could not format threads: %m\n"); + goto ERROR; + } + + // Try using multiple threads + r = archive_write_set_filter_option(a, NULL, "threads", threads); + if (r) { + ERROR(pakfire, "Could not enable %s threads for compression: %s\n", + threads, archive_error_string(a)); + goto ERROR; + } + } +#endif } // Write archive to f -- 2.39.2