From 8d25df3c72dc3ccf75871ad2a398d046938cbf0e Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 6 Jul 2011 16:47:29 +0930 Subject: [PATCH] Cleanup --cpu-threads/-t logic Currently it gets negated which means the default printed is wrong. Use an explicit flag to tell if the user has overridden it; if they haven't, and they turn off the GPUs, reset it to num_processors. --- main.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/main.c b/main.c index 56a191c3..cdd854d6 100644 --- a/main.c +++ b/main.c @@ -136,7 +136,8 @@ static enum sha256_algos opt_algo = ALGO_C; static int nDevs; static int opt_g_threads = 2; static int gpu_threads; -static int opt_n_threads = 1; +static bool forced_n_threads; +static int opt_n_threads; static int num_processors; static int scan_intensity = 4; static char *rpc_url; @@ -206,6 +207,12 @@ static char *set_int_0_to_14(const char *arg, int *i) return set_int_range(arg, i, 0, 14); } +static char *force_nthreads_int(const char *arg, int *i) +{ + forced_n_threads = true; + return set_int_range(arg, i, 0, 9999); +} + static char *set_int_0_to_10(const char *arg, int *i) { return set_int_range(arg, i, 0, 10); @@ -262,7 +269,7 @@ static struct opt_table opt_config_table[] = { #endif ), OPT_WITH_ARG("--cpu-threads|-t", - set_int_0_to_9999, opt_show_intval, &opt_n_threads, + force_nthreads_int, opt_show_intval, &opt_n_threads, "Number of miner CPU threads"), OPT_WITHOUT_ARG("--debug|-D", enable_debug, &opt_debug, @@ -1444,10 +1451,8 @@ int main (int argc, char *argv[]) #ifdef HAVE_OPENCL nDevs = clDevicesNum(); #endif - /* Invert the value to determine if we manually set it in cmdline - * or disable gpu threads */ if (nDevs) - opt_n_threads = - opt_n_threads; + opt_n_threads = 0; rpc_url = strdup(DEF_RPC_URL); @@ -1471,11 +1476,9 @@ int main (int argc, char *argv[]) #endif gpu_threads = nDevs * opt_g_threads; - if (opt_n_threads < 0) { - if (gpu_threads) - opt_n_threads = 0; - else - opt_n_threads = -opt_n_threads; + if (!gpu_threads && !forced_n_threads) { + /* Maybe they turned GPU off; restore default CPU threads. */ + opt_n_threads = num_processors; } if (!rpc_userpass) {