From 7fb13b3cbf6b7a2290a85e4d93b208c5a164dd43 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 6 Apr 2021 09:01:26 +0200 Subject: [PATCH] Fixed handling the timer counter in cSchedule::DelEvent() --- HISTORY | 3 ++- epg.c | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/HISTORY b/HISTORY index caf31276..e0115791 100644 --- a/HISTORY +++ b/HISTORY @@ -9578,7 +9578,7 @@ Video Disk Recorder Revision History given (reported by Manuel Reimer). - Fixed handling $(PKG_CONFIG) in newplugin (thanks to Winfried Köhler). -2021-04-05: +2021-04-06: - Fixed strreplace() to handle NULL strings (reported by Jürgen Schneider). - Somewhere down the road the 'x' bit of Doxyfile.filter got lost, so the @@ -9635,3 +9635,4 @@ Video Disk Recorder Revision History previous and next event. - Spawned timers that don't use VPS now automatically adjust their start/stop times to changes in the respective event's times. +- Fixed handling the timer counter in cSchedule::DelEvent(). diff --git a/epg.c b/epg.c index 2aac8008..1f970f56 100644 --- a/epg.c +++ b/epg.c @@ -7,7 +7,7 @@ * Original version (as used in VDR before 1.3.0) written by * Robert Schneider and Rolf Hakenes . * - * $Id: epg.c 5.2 2021/04/04 11:06:30 kls Exp $ + * $Id: epg.c 5.3 2021/04/06 09:01:26 kls Exp $ */ #include "epg.h" @@ -951,6 +951,13 @@ void cSchedule::DelEvent(cEvent *Event) if (Event->schedule == this) { UnhashEvent(Event); Event->schedule = NULL; + // Removing the event from its schedule prevents it from decrementing the + // schedule's timer counter, so we do it here: + cEvent::numTimersMutex.Lock(); + numTimersMutex.Lock(); + numTimers -= Event->numTimers; + numTimersMutex.Unlock(); + cEvent::numTimersMutex.Unlock(); events.Del(Event); } }