From: Jaroslav Kysela Date: Sun, 21 Aug 2016 06:02:16 +0000 (+0200) Subject: service: handle tuner/service priority settings also for free input instances, fixes... X-Git-Tag: v4.2.1~355 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c53ee12bbe7d027385d611182ade2322eaa7e2c0;p=thirdparty%2Ftvheadend.git service: handle tuner/service priority settings also for free input instances, fixes #3948 --- 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) {