Added env var function for threads
This commit is contained in:
parent
5d91206ebe
commit
70fa7b37ca
@ -16,6 +16,10 @@
|
|||||||
# define ZSTDCLI_CLEVEL_DEFAULT 3
|
# define ZSTDCLI_CLEVEL_DEFAULT 3
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef ZSTD_THREADS_DEFAULT
|
||||||
|
# define ZSTD_THREADS_DEFAULT 3
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef ZSTDCLI_CLEVEL_MAX
|
#ifndef ZSTDCLI_CLEVEL_MAX
|
||||||
# define ZSTDCLI_CLEVEL_MAX 19 /* without using --ultra */
|
# define ZSTDCLI_CLEVEL_MAX 19 /* without using --ultra */
|
||||||
#endif
|
#endif
|
||||||
@ -586,6 +590,7 @@ static void printVersion(void)
|
|||||||
|
|
||||||
/* Environment variables for parameter setting */
|
/* Environment variables for parameter setting */
|
||||||
#define ENV_CLEVEL "ZSTD_CLEVEL"
|
#define ENV_CLEVEL "ZSTD_CLEVEL"
|
||||||
|
#define ENV_THREADS "ZSTD_THREADS"
|
||||||
|
|
||||||
/* pick up environment variable */
|
/* pick up environment variable */
|
||||||
static int init_cLevel(void) {
|
static int init_cLevel(void) {
|
||||||
@ -615,6 +620,26 @@ static int init_cLevel(void) {
|
|||||||
return ZSTDCLI_CLEVEL_DEFAULT;
|
return ZSTDCLI_CLEVEL_DEFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* pick up environment variable */
|
||||||
|
static unsigned init_numThreads(void) {
|
||||||
|
const char* const env = getenv(ENV_THREADS);
|
||||||
|
if (env != NULL) {
|
||||||
|
const char* ptr = env;
|
||||||
|
if ((*ptr>='0') && (*ptr<='9')) {
|
||||||
|
unsigned numThreads;
|
||||||
|
if (readU32FromCharChecked(&ptr, &numThreads)) {
|
||||||
|
DISPLAYLEVEL(2, "Ignore environment variable setting %s=%s: numeric value too large \n", ENV_THREADS, env);
|
||||||
|
return ZSTD_THREADS_DEFAULT;
|
||||||
|
} else if (*ptr == 0) {
|
||||||
|
return numThreads;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DISPLAYLEVEL(2, "Ignore environment variable setting %s=%s: not a valid integer value \n", ENV_THREADS, env);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ZSTD_THREADS_DEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
#define NEXT_FIELD(ptr) { \
|
#define NEXT_FIELD(ptr) { \
|
||||||
if (*argument == '=') { \
|
if (*argument == '=') { \
|
||||||
ptr = ++argument; \
|
ptr = ++argument; \
|
||||||
@ -721,7 +746,7 @@ int main(int const argCount, const char* argv[])
|
|||||||
if ((filenames==NULL) || (file_of_names==NULL)) { DISPLAY("zstd: allocation error \n"); exit(1); }
|
if ((filenames==NULL) || (file_of_names==NULL)) { DISPLAY("zstd: allocation error \n"); exit(1); }
|
||||||
programName = lastNameFromPath(programName);
|
programName = lastNameFromPath(programName);
|
||||||
#ifdef ZSTD_MULTITHREAD
|
#ifdef ZSTD_MULTITHREAD
|
||||||
nbWorkers = 1;
|
nbWorkers = init_numThreads();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* preset behaviors */
|
/* preset behaviors */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user