integrate child_death_task with aggregator struct, and cancel it on error
This commit is contained in:
parent
e1b2900ebe
commit
421b4f403f
@ -585,6 +585,11 @@ struct Command
|
|||||||
*/
|
*/
|
||||||
struct GNUNET_OS_Process *aggregator_proc;
|
struct GNUNET_OS_Process *aggregator_proc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID of task called whenever we get a SIGCHILD.
|
||||||
|
*/
|
||||||
|
struct GNUNET_SCHEDULER_Task *child_death_task;
|
||||||
|
|
||||||
} run_aggregator;
|
} run_aggregator;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
@ -681,12 +686,6 @@ struct InterpreterState
|
|||||||
*/
|
*/
|
||||||
static struct GNUNET_DISK_PipeHandle *sigpipe;
|
static struct GNUNET_DISK_PipeHandle *sigpipe;
|
||||||
|
|
||||||
/**
|
|
||||||
* ID of task called whenever we get a SIGCHILD.
|
|
||||||
*/
|
|
||||||
static struct GNUNET_SCHEDULER_Task *child_death_task;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The testcase failed, return with an error code.
|
* The testcase failed, return with an error code.
|
||||||
@ -1266,7 +1265,7 @@ maint_child_death (void *cls)
|
|||||||
const struct GNUNET_DISK_FileHandle *pr;
|
const struct GNUNET_DISK_FileHandle *pr;
|
||||||
char c[16];
|
char c[16];
|
||||||
|
|
||||||
child_death_task = NULL;
|
cmd->details.run_aggregator.child_death_task = NULL;
|
||||||
pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
|
pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
|
||||||
GNUNET_break (0 < GNUNET_DISK_file_read (pr, &c, sizeof (c)));
|
GNUNET_break (0 < GNUNET_DISK_file_read (pr, &c, sizeof (c)));
|
||||||
GNUNET_OS_process_wait (cmd->details.run_aggregator.aggregator_proc);
|
GNUNET_OS_process_wait (cmd->details.run_aggregator.aggregator_proc);
|
||||||
@ -2233,9 +2232,10 @@ interpreter_run (void *cls)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
|
pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
|
||||||
child_death_task = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
|
cmd->details.run_aggregator.child_death_task
|
||||||
pr,
|
= GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
|
||||||
&maint_child_death, is);
|
pr,
|
||||||
|
&maint_child_death, is);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case OC_CHECK_BANK_TRANSFER:
|
case OC_CHECK_BANK_TRANSFER:
|
||||||
@ -2547,6 +2547,11 @@ do_shutdown (void *cls)
|
|||||||
GNUNET_OS_process_destroy (cmd->details.run_aggregator.aggregator_proc);
|
GNUNET_OS_process_destroy (cmd->details.run_aggregator.aggregator_proc);
|
||||||
cmd->details.run_aggregator.aggregator_proc = NULL;
|
cmd->details.run_aggregator.aggregator_proc = NULL;
|
||||||
}
|
}
|
||||||
|
if (NULL != cmd->details.run_aggregator.child_death_task)
|
||||||
|
{
|
||||||
|
GNUNET_SCHEDULER_cancel (cmd->details.run_aggregator.child_death_task);
|
||||||
|
cmd->details.run_aggregator.child_death_task = NULL;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case OC_CHECK_BANK_TRANSFER:
|
case OC_CHECK_BANK_TRANSFER:
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user