From: Andre Noll Date: Mon, 5 Mar 2007 22:41:09 +0000 (+0100) Subject: audiod: avoid busy loop on startup X-Git-Tag: v0.2.16~44 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=1a6fca660c4c8af101be0d576e009f40275757c0;hp=024e8b17ad91b3f36d826be3d68faec4e2100fa8 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. --- 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;