From c53ee12bbe7d027385d611182ade2322eaa7e2c0 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sun, 21 Aug 2016 08:02:16 +0200 Subject: [PATCH] service: handle tuner/service priority settings also for free input instances, fixes #3948 --- src/service.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/service.c b/src/service.c index 1898aee6e..519b2cb45 100644 --- a/src/service.c +++ b/src/service.c @@ -815,15 +815,17 @@ service_find_instance /* Already running? */ TAILQ_FOREACH(si, sil, si_link) - if(si->si_s->s_status == SERVICE_RUNNING && si->si_error == 0) { + if (si->si_s->s_status == SERVICE_RUNNING && si->si_error == 0) { tvhtrace(LS_SERVICE, "return already running %p", si); return si; } - /* Forced */ - TAILQ_FOREACH(si, sil, si_link) - if(si->si_weight < 0 && si->si_error == 0) - break; + /* Forced, handle priority settings */ + si = NULL; + TAILQ_FOREACH(next, sil, si_link) + if (next->si_weight < 0 && next->si_error == 0) + if (si == NULL || next->si_prio > si->si_prio) + si = next; /* Idle */ if (!si) { -- 2.47.3