]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts network_scan: fix queue ordering issue
authorAdam Sutton <dev@adamsutton.me.uk>
Fri, 6 Jun 2014 09:09:38 +0000 (10:09 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Mon, 9 Jun 2014 21:08:41 +0000 (22:08 +0100)
This was causing entries just complete (idle scan) to get re-added to the head!
Which ultimately resulted in only N entries ever getting serviced (where N is
the number of available tuners)

src/input/mpegts/mpegts_network_scan.c

index f3d7528aee3ebecbb9aca86305ee4197ec40df93..acb9c9b1b1d5465c49d78518b6aae7574ce84003 100644 (file)
@@ -93,7 +93,8 @@ mpegts_network_scan_timer_cb ( void *p )
     if (r == SM_CODE_NO_VALID_ADAPTER) {
       if (!mark) mark = mm;
       TAILQ_REMOVE(&mpegts_network_scan_pend, mm, mm_scan_link);
-      TAILQ_INSERT_SORTED(&mpegts_network_scan_pend, mm, mm_scan_link, mm_cmp);
+      TAILQ_INSERT_SORTED_R(&mpegts_network_scan_pend, mpegts_mux_queue,
+                            mm, mm_scan_link, mm_cmp);
       continue;
     }
 
@@ -226,7 +227,8 @@ mpegts_network_scan_queue_add ( mpegts_mux_t *mm, int weight )
 
   /* Add new entry */
   mm->mm_scan_state = MM_SCAN_STATE_PEND;
-  TAILQ_INSERT_SORTED(&mpegts_network_scan_pend, mm, mm_scan_link, mm_cmp);
+  TAILQ_INSERT_SORTED_R(&mpegts_network_scan_pend, mpegts_mux_queue,
+                        mm, mm_scan_link, mm_cmp);
   mpegts_network_scan_timer_arm(0);
   mpegts_network_scan_notify(mm);
 }