]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts tables: fix another table list inconsistency
authorJaroslav Kysela <perex@perex.cz>
Sun, 27 Jul 2014 14:05:20 +0000 (16:05 +0200)
committerJaroslav Kysela <perex@perex.cz>
Sun, 27 Jul 2014 14:05:20 +0000 (16:05 +0200)
src/input/mpegts/mpegts_mux.c

index 01a92b3a00231eed0e3ac9676aa29676cee6e810..474ff78b31d1bd20fbf6e3f26e392d960efc3970 100644 (file)
@@ -768,6 +768,8 @@ mpegts_mux_close_table ( mpegts_mux_t *mm, mpegts_table_t *mt )
       pthread_mutex_unlock(&mm->mm_tables_lock);
       return;
     }
+    LIST_REMOVE(mt, mt_link);
+    mm->mm_num_tables--;
     if (mt->mt_defer_cmd == MT_DEFER_OPEN_PID) {
       LIST_REMOVE(mt, mt_defer_link);
       mt->mt_defer_cmd = 0;
@@ -776,8 +778,6 @@ mpegts_mux_close_table ( mpegts_mux_t *mm, mpegts_table_t *mt )
       return;
     }
     mpegts_table_grab(mt); /* thread will free the table */
-    LIST_REMOVE(mt, mt_link);
-    mm->mm_num_tables--;
     mt->mt_defer_cmd = MT_DEFER_CLOSE_PID;
     LIST_INSERT_HEAD(&mm->mm_defer_tables, mt, mt_defer_link);
     pthread_mutex_unlock(&mm->mm_tables_lock);