summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkamel5 <vdr.kamel5 (at) gmx (dot) net>2019-04-01 16:17:09 +0200
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2019-07-05 13:04:34 +0200
commit3596d0353b498234c4ec1515106b13e51b758668 (patch)
tree46bbbeb04ed9968bc4fc567516df7a8787c72d00
parent4ba3e07bb3eed9cd261219978b238157af202885 (diff)
downloadvdr-plugin-tvguideng-3596d0353b498234c4ec1515106b13e51b758668.tar.gz
vdr-plugin-tvguideng-3596d0353b498234c4ec1515106b13e51b758668.tar.bz2
Fixed deadlock in DeleteTimer
-rw-r--r--recmanager.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/recmanager.c b/recmanager.c
index d9912be..7b03630 100644
--- a/recmanager.c
+++ b/recmanager.c
@@ -168,10 +168,13 @@ void cRecManager::SetTimerPath(cTimer *timer, const cEvent *event, std::string p
void cRecManager::DeleteTimer(int timerID) {
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
+ const cTimer *t;
+ {
LOCK_TIMERS_READ;
- const cTimer *t = Timers->Get(timerID);
+ t = Timers->Get(timerID);
+ }
#else
- const cTimer *t = Timers.Get(timerID);
+ t = Timers.Get(timerID);
#endif
if (!t)
@@ -191,10 +194,13 @@ void cRecManager::DeleteTimer(const cEvent *event) {
void cRecManager::DeleteLocalTimer(const cEvent *event) {
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
+ const cTimer *t;
+ {
LOCK_TIMERS_READ;
- const cTimer *t = Timers->GetMatch(event);
+ t = Timers->GetMatch(event);
+ }
#else
- const cTimer *t = Timers.GetMatch(event);
+ t = Timers.GetMatch(event);
#endif
if (!t)