From 19275aa8bbc3407406d473debf316d0dbe6f45e3 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 31 Oct 2017 09:47:14 +0100 Subject: Fixed an invalid lock sequence when trying to remove a deleted recording in case of low disk space; now making sure that AssertFreeDiskSpace() is called with the maximum timer priority in case there are several timers recording with different priorities --- timers.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'timers.c') diff --git a/timers.c b/timers.c index 8987b126..bc894cc0 100644 --- a/timers.c +++ b/timers.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: timers.c 4.11 2017/06/25 10:02:09 kls Exp $ + * $Id: timers.c 4.12 2017/10/31 09:41:31 kls Exp $ */ #include "timers.h" @@ -804,6 +804,16 @@ const cTimer *cTimers::GetMatch(const cEvent *Event, eTimerMatch *Match) const return t; } +int cTimers::GetMaxPriority(void) const +{ + int n = 0; + for (const cTimer *ti = First(); ti; ti = Next(ti)) { + if (!ti->Remote() && ti->Recording()) + n = max(n, ti->Priority()); + } + return n; +} + const cTimer *cTimers::GetNextActiveTimer(void) const { const cTimer *t0 = NULL; -- cgit v1.2.3