case SIGINT:
case SIGTERM:
case SIGHUP:
- PARA_EMERG_LOG("terminating on signal %d\n", signum);
+ PARA_NOTICE_LOG("received signal %d\n", signum);
clean_exit(EXIT_FAILURE, "caught deadly signal");
}
return 0;
int ret;
struct command_task *ct = container_of(t, struct command_task, task);
static struct timeval last_status_dump;
- struct timeval tmp, delay = {0, 500 * 1000};
+ struct timeval tmp, delay = {5, 0};
+ bool force = false;
tv_add(&last_status_dump, &delay, &tmp);
if (tv_diff(&tmp, now, NULL) < 0) {
- audiod_status_dump();
last_status_dump = *now;
+ force = true;
}
ret = handle_connect(ct->fd, &s->rfds);
if (ret < 0)
PARA_ERROR_LOG("%s\n", para_strerror(-ret));
- audiod_status_dump();
+ else if (ret > 0)
+ force = true;
+ audiod_status_dump(force);
return 0;
}
stat_task->offset_seconds = 0;
stat_task->vss_status = 0;
stat_task->current_audio_format_num = -1;
- audiod_status_dump();
+ audiod_status_dump(true);
}
/* avoid busy loop if server is down */
{
int i;
- PARA_EMERG_LOG("%s\n", msg);
if (socket_name)
unlink(socket_name);
close_stat_pipe();
FOR_EACH_SLOT(i)
close_slot(i);
audiod_cmdline_parser_free(&conf);
+ close_stat_clients();
+ PARA_EMERG_LOG("%s\n", msg);
exit(status);
}
char *buf;
size_t sz;
int ret;
- if (st->ct->task.error < 0) {
+
+ ret = btr_node_status(st->btrn, st->min_iqs, BTR_NT_LEAF);
+ if (ret < 0) {
close_stat_pipe();
goto out;
}
if (st->ct->status != CL_EXECUTING)
goto out;
- ret = btr_node_status(st->btrn, st->min_iqs, BTR_NT_LEAF);
- if (ret <= 0) {
+ if (ret == 0) {
struct timeval diff;
tv_diff(now, &st->last_status_read, &diff);
if (diff.tv_sec > 61)