Commit 4c893265 authored by Philip Carns's avatar Philip Carns

only print usage errors on rank 0

parent 4c652521
...@@ -26,7 +26,7 @@ struct options ...@@ -26,7 +26,7 @@ struct options
char* na_transport; char* na_transport;
}; };
static void parse_args(int argc, char **argv, struct options *opts); static int parse_args(int argc, char **argv, struct options *opts);
static void usage(void); static void usage(void);
static int run_benchmark(int iterations, hg_id_t id, ssg_member_id_t target, static int run_benchmark(int iterations, hg_id_t id, ssg_member_id_t target,
ssg_group_id_t gid, margo_instance_id mid, double *measurement_array); ssg_group_id_t gid, margo_instance_id mid, double *measurement_array);
...@@ -84,7 +84,13 @@ int main(int argc, char **argv) ...@@ -84,7 +84,13 @@ int main(int argc, char **argv)
printf("Process %d of %d is on %s\n", printf("Process %d of %d is on %s\n",
rank, nranks, processor_name); rank, nranks, processor_name);
parse_args(argc, argv, &g_opts); ret = parse_args(argc, argv, &g_opts);
if(ret < 0)
{
if(rank == 0)
usage();
exit(EXIT_FAILURE);
}
/* boilerplate ABT initialization steps */ /* boilerplate ABT initialization steps */
/****************************************/ /****************************************/
...@@ -228,7 +234,7 @@ int main(int argc, char **argv) ...@@ -228,7 +234,7 @@ int main(int argc, char **argv)
return 0; return 0;
} }
static void parse_args(int argc, char **argv, struct options *opts) static int parse_args(int argc, char **argv, struct options *opts)
{ {
int opt; int opt;
int ret; int ret;
...@@ -248,46 +254,36 @@ static void parse_args(int argc, char **argv, struct options *opts) ...@@ -248,46 +254,36 @@ static void parse_args(int argc, char **argv, struct options *opts)
if(!opts->diag_file_name) if(!opts->diag_file_name)
{ {
perror("strdup"); perror("strdup");
exit(EXIT_FAILURE); return(-1);
} }
break; break;
case 'i': case 'i':
ret = sscanf(optarg, "%d", &opts->iterations); ret = sscanf(optarg, "%d", &opts->iterations);
if(ret != 1) if(ret != 1)
{ return(-1);
usage();
exit(EXIT_FAILURE);
}
break; break;
case 't': case 't':
ret = sscanf(optarg, "%u,%u", &opts->mercury_timeout_client, &opts->mercury_timeout_server); ret = sscanf(optarg, "%u,%u", &opts->mercury_timeout_client, &opts->mercury_timeout_server);
if(ret != 2) if(ret != 2)
{ return(-1);
usage();
exit(EXIT_FAILURE);
}
break; break;
case 'n': case 'n':
opts->na_transport = strdup(optarg); opts->na_transport = strdup(optarg);
if(!opts->na_transport) if(!opts->na_transport)
{ {
perror("strdup"); perror("strdup");
exit(EXIT_FAILURE); return(-1);
} }
break; break;
default: default:
usage(); return(-1);
exit(EXIT_FAILURE);
} }
} }
if(opts->iterations < 1 || !opts->na_transport) if(opts->iterations < 1 || !opts->na_transport)
{ return(-1);
usage();
exit(EXIT_FAILURE);
}
return; return(0);
} }
static void usage(void) static void usage(void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment