1
0
mirror of https://github.com/facebook/zstd.git synced 2025-07-30 22:23:13 +03:00

[pzstd] Smart default # of threads (#331)

This commit is contained in:
Nick Terrell
2016-09-06 12:40:59 -07:00
parent 9622fe499d
commit 4c202815c7
2 changed files with 11 additions and 4 deletions

View File

@ -10,6 +10,7 @@
#include <cstdio>
#include <cstring>
#include <thread>
namespace pzstd {
@ -103,6 +104,7 @@ bool Options::parse(int argc, const char** argv) {
numThreads = parseUnsigned(argv[i]);
if (numThreads == 0) {
std::fprintf(stderr, "Invalid argument: # of threads must be > 0.\n");
return false;
}
break;
case 'p':
@ -169,12 +171,17 @@ bool Options::parse(int argc, const char** argv) {
if (compressionLevel > maxCLevel) {
std::fprintf(
stderr, "Invalid compression level %u.\n", compressionLevel);
return false;
}
}
// Check that numThreads is set
if (numThreads == 0) {
std::fprintf(stderr, "Invalid arguments: # of threads not specified.\n");
return false;
numThreads = std::thread::hardware_concurrency();
if (numThreads == 0) {
std::fprintf(stderr, "Invalid arguments: # of threads not specified "
"and unable to determine hardware concurrency.\n");
return false;
}
}
return true;
}