]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
service: handle tuner/service priority settings also for free input instances, fixes...
authorJaroslav Kysela <perex@perex.cz>
Sun, 21 Aug 2016 06:02:16 +0000 (08:02 +0200)
committerJaroslav Kysela <perex@perex.cz>
Sun, 21 Aug 2016 06:02:16 +0000 (08:02 +0200)
src/service.c

index 1898aee6e2dad70aa858fd746067c087dfd28e79..519b2cb457886c0142d6578595035516d61ab039 100644 (file)
@@ -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) {