audiod: Avoid busy loop if switched off.
authorAndre Noll <maan@systemlinux.org>
Thu, 22 Apr 2010 21:12:46 +0000 (23:12 +0200)
committerAndre Noll <maan@systemlinux.org>
Thu, 22 Apr 2010 21:12:46 +0000 (23:12 +0200)
Also, request a minimal delay if the status task has to be shut down.

audiod.c

index cc4164f..380e53e 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -1152,7 +1152,9 @@ static void status_pre_select(struct sched *s, struct task *t)
        ret = btr_node_status(st->btrn, 0, BTR_NT_LEAF);
        if (ret > 0)
                goto min_delay;
-       if (!st->ct)
+       if (st->ct && audiod_status == AUDIOD_OFF)
+               goto min_delay;
+       if (!st->ct && audiod_status != AUDIOD_OFF)
                sched_request_barrier_or_min_delay(&st->restart_barrier, s);
        if (cafn >= 0)
                sched_request_barrier(&afi[cafn].restart_barrier, s);