+{
+ struct status_task *st = container_of(t, struct status_task, task);
+ int ret, cafn = stat_task->current_audio_format_num;
+
+ if (must_start_decoder())
+ goto min_delay;
+ ret = btr_node_status(st->btrn, 0, BTR_NT_LEAF);
+ if (ret > 0)
+ goto min_delay;
+ 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);
+ /*
+ * If para_server is playing we'd like to have a smooth time display
+ * even if we are running in standby mode. So we request a timeout that
+ * expires at the next full second.
+ */
+ if (stat_task->vss_status & VSS_STATUS_FLAG_PLAYING)
+ sched_request_timeout_ms(1000 - now->tv_usec / 1000, s);
+ return;
+min_delay:
+ sched_min_delay(s);
+}
+
+/* restart the client task if necessary */
+static void status_post_select(__a_unused struct sched *s, struct task *t)