From 7fb13b3cbf6b7a2290a85e4d93b208c5a164dd43 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 6 Apr 2021 09:01:26 +0200 Subject: Fixed handling the timer counter in cSchedule::DelEvent() --- epg.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'epg.c') 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); } } -- cgit v1.2.3