Fix --ndevs/-n option. The option should be called from within the callback, and just use printf to give the raw result, rather than using applog which prepends a timestamp.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
diff --git a/main.c b/main.c
index cdd854d..4eb0eea 100644
--- a/main.c
+++ b/main.c
@@ -114,7 +114,6 @@ static const char *algo_names[] = {
bool opt_debug = false;
bool opt_protocol = false;
-bool opt_ndevs = false;
bool want_longpoll = true;
bool have_longpoll = false;
bool use_syslog = false;
@@ -395,7 +394,13 @@ static char *load_config(const char *arg, void *unused)
* so don't free config object. */
return parse_config(config);
}
-
+
+static char *print_ndevs_and_exit(int *ndevs)
+{
+ printf("%i", *ndevs);
+ exit(*ndevs);
+}
+
/* These options are available from commandline only */
static struct opt_table opt_cmdline_table[] = {
OPT_WITH_ARG("--config|-c",
@@ -410,6 +415,9 @@ static struct opt_table opt_cmdline_table[] = {
"\nBuilt with CPU mining support only.\n\n",
#endif
"Print this message"),
+ OPT_WITHOUT_ARG("--ndevs|-n",
+ print_ndevs_and_exit, &nDevs,
+ "Display number of detected GPUs and exit"),
OPT_ENDTABLE
};
@@ -1468,13 +1476,6 @@ int main (int argc, char *argv[])
return 1;
}
-#ifdef HAVE_OPENCL
- if (opt_ndevs) {
- applog(LOG_INFO, "%i", nDevs);
- return nDevs;
- }
-#endif
-
gpu_threads = nDevs * opt_g_threads;
if (!gpu_threads && !forced_n_threads) {
/* Maybe they turned GPU off; restore default CPU threads. */