aboutsummaryrefslogtreecommitdiff
path: root/src/indexamajig.c
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2023-12-18 14:42:22 +0100
committerThomas White <taw@physics.org>2023-12-22 14:44:27 +0100
commitb8a765d620dae8d5dc3c5aef8c713d6d71e45bac (patch)
treeadfd6152812ced86a12662b2145f3a77d28cf726 /src/indexamajig.c
parent32efc83f9587844a27ba67c83a1b77a9e60efbb3 (diff)
indexamajig: Add --no-data-timeout
Diffstat (limited to 'src/indexamajig.c')
-rw-r--r--src/indexamajig.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/indexamajig.c b/src/indexamajig.c
index ef25e396..361b761a 100644
--- a/src/indexamajig.c
+++ b/src/indexamajig.c
@@ -94,6 +94,7 @@ struct indexamajig_arguments
int if_multi;
int if_retry;
int profile; /* Whether to do wall-clock time profiling */
+ int no_data_timeout;
char **copy_headers;
int n_copy_headers;
char *harvest_file;
@@ -457,6 +458,14 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state)
args->cpu_pin = 1;
break;
+ case 224 :
+ if (sscanf(arg, "%d", &args->no_data_timeout) != 1)
+ {
+ ERROR("Invalid value for --no-data-timeout\n");
+ return EINVAL;
+ }
+ break;
+
/* ---------- Peak search ---------- */
case 't' :
@@ -910,6 +919,7 @@ int main(int argc, char *argv[])
args.if_refine = 1;
args.if_checkcell = 1;
args.profile = 0;
+ args.no_data_timeout = 60;
args.copy_headers = NULL;
args.n_copy_headers = 0;
args.harvest_file = NULL;
@@ -1028,6 +1038,8 @@ int main(int argc, char *argv[])
"Wait for ASAP::O stream to appear"},
{"asapo-output-stream", 222, NULL, OPTION_NO_USAGE, "Create an ASAP::O hits-only stream"},
{"cpu-pin", 223, NULL, OPTION_NO_USAGE, "Pin worker processes to CPUs"},
+ {"no-data-timeout", 224, "s", OPTION_NO_USAGE,
+ "Shut down after this many seconds without ASAP::O data"},
{NULL, 0, 0, OPTION_DOC, "Peak search options:", 3},
{"peaks", 301, "method", 0, "Peak search method. Default: zaef"},
@@ -1449,7 +1461,8 @@ int main(int argc, char *argv[])
r = create_sandbox(&args.iargs, args.n_proc, args.prefix, args.basename,
fh, st, tmpdir, args.serial_start,
&args.zmq_params, &args.asapo_params,
- timeout, args.profile, args.cpu_pin);
+ timeout, args.profile, args.cpu_pin,
+ args.no_data_timeout);
if ( pf8_data != NULL ) free_pf8_private_data(pf8_data);
cell_free(args.iargs.cell);