mpegts network_scan: fix queue ordering issue

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)
This commit is contained in:
Adam Sutton 2014-06-06 10:09:38 +01:00
parent 88e07ba84a
commit 147c631e3c

View 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);
}