From: Jaroslav Kysela Date: Sat, 15 Oct 2016 18:56:58 +0000 (+0200) Subject: dvr: fix shutdown sequence in main.c and properly unsubscribe in dvr_entry_done() X-Git-Tag: v4.2.1~265 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=47af3cd779940e0f0d3eb1882b60fa4f4f47c0a8;p=thirdparty%2Ftvheadend.git dvr: fix shutdown sequence in main.c and properly unsubscribe in dvr_entry_done() --- diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index 9ac18e6ee..8ac0e95af 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -3738,6 +3738,9 @@ dvr_entry_done(void) { dvr_entry_t *de; lock_assert(&global_lock); - while ((de = LIST_FIRST(&dvrentries)) != NULL) - dvr_entry_destroy(de, 0); + while ((de = LIST_FIRST(&dvrentries)) != NULL) { + if (de->de_sched_state == DVR_RECORDING) + dvr_rec_unsubscribe(de); + dvr_entry_destroy(de, 0); + } } diff --git a/src/main.c b/src/main.c index bc70832eb..7f80f94b5 100644 --- a/src/main.c +++ b/src/main.c @@ -1314,12 +1314,12 @@ main(int argc, char **argv) #if ENABLE_MPEGTS tvhftrace(LS_MAIN, mpegts_done); #endif + tvhftrace(LS_MAIN, dvr_done); tvhftrace(LS_MAIN, descrambler_done); tvhftrace(LS_MAIN, service_mapper_done); tvhftrace(LS_MAIN, service_done); tvhftrace(LS_MAIN, channel_done); tvhftrace(LS_MAIN, bouquet_done); - tvhftrace(LS_MAIN, dvr_done); tvhftrace(LS_MAIN, subscription_done); tvhftrace(LS_MAIN, access_done); tvhftrace(LS_MAIN, epg_done);