From: Jaroslav Kysela Date: Thu, 17 Mar 2016 21:24:58 +0000 (+0100) Subject: mpegts scan: optimize/fix the scan done routine X-Git-Tag: v4.2.1~843 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d0063e591db41c25a7494e6e12154cc315998a63;p=thirdparty%2Ftvheadend.git mpegts scan: optimize/fix the scan done routine --- diff --git a/src/input/mpegts/mpegts_network_scan.c b/src/input/mpegts/mpegts_network_scan.c index ff522a5c4..445e54b4e 100644 --- a/src/input/mpegts/mpegts_network_scan.c +++ b/src/input/mpegts/mpegts_network_scan.c @@ -102,9 +102,15 @@ mpegts_network_scan_mux_done0 ( mpegts_mux_t *mm, mpegts_mux_scan_result_t result, int weight ) { mpegts_network_t *mn = mm->mm_network; + mpegts_mux_scan_state_t state = mm->mm_scan_state; + /* prevent double del: */ + /* mpegts_mux_stop -> mpegts_network_scan_mux_cancel */ + mm->mm_scan_state = MM_SCAN_STATE_IDLE; mpegts_mux_unsubscribe_by_name(mm, "scan"); - if (mm->mm_scan_state == MM_SCAN_STATE_PEND) { + mm->mm_scan_state = state; + + if (state == MM_SCAN_STATE_PEND) { if (weight || mn->mn_idlescan) { if (!weight) mm->mm_scan_weight = SUBSCRIPTION_PRIO_SCAN_IDLE;