From 1a6fca660c4c8af101be0d576e009f40275757c0 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Mon, 5 Mar 2007 23:41:09 +0100 Subject: [PATCH] audiod: avoid busy loop on startup The restart barrier of the status task must be also set in case client_open() failed. This avoids spamming the log file. --- audiod.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/audiod.c b/audiod.c index dbc1e850..5515e527 100644 --- a/audiod.c +++ b/audiod.c @@ -1011,11 +1011,16 @@ void __noreturn clean_exit(int status, const char *msg) exit(status); } +/* avoid busy loop if server is down */ +static void set_stat_task_restart_barrier(void) +{ + struct timeval delay = {5, 0}; + tv_add(now, &delay, &stat_task->restart_barrier); +} static void client_task_event_handler(__a_unused struct task *t) { int i; - struct timeval delay = {1, 0}; if (t->ret == -E_HANDSHAKE_COMPLETE) return; @@ -1023,8 +1028,7 @@ static void client_task_event_handler(__a_unused struct task *t) close_stat_pipe(); if (t->ret != -E_SERVER_EOF) stat_task->clock_diff_count = conf.clock_diff_count_arg; - /* avoid busy loop if server is down */ - tv_add(now, &delay, &stat_task->restart_barrier); + set_stat_task_restart_barrier(); FOR_EACH_AUDIO_FORMAT(i) afi[i].restart_barrier = stat_task->restart_barrier; } @@ -1053,6 +1057,7 @@ static void status_pre_select(struct sched *s, struct task *t) int argc = 2; ret = client_open(argc, argv, &st->pcd); } + set_stat_task_restart_barrier(); if (ret < 0) return; st->pcd->task.event_handler = client_task_event_handler; -- 2.39.5