summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasmin Jessich <jasmin@anw.at>2017-06-09 01:15:27 +0200
committerJasmin Jessich <jasmin@anw.at>2017-06-09 01:16:19 +0200
commitc430d84a28a320ad91fd42d6d108d30812fd5c8c (patch)
tree8e8a8d7f10d8fc0f1fa7cd2e86efaa8fe0441be5
parent52058cf83b8666d1132207470f42e2a535b8be90 (diff)
downloadvdr-plugin-live-c430d84a28a320ad91fd42d6d108d30812fd5c8c.tar.gz
vdr-plugin-live-c430d84a28a320ad91fd42d6d108d30812fd5c8c.tar.bz2
Fixed lock order in edit_timer.ecpp
- Move the schedules lock into a block and execute "new cTimer(..." with unlocked Schedules lists.
-rw-r--r--pages/edit_timer.ecpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/pages/edit_timer.ecpp b/pages/edit_timer.ecpp
index 9a7dfd3..e13e471 100644
--- a/pages/edit_timer.ecpp
+++ b/pages/edit_timer.ecpp
@@ -107,13 +107,16 @@ cTimer* timer;
EpgEvents::DecodeDomId(epgid, channelid, eventid);
if ( channelid.Valid() && eventid != 0 ) {
cerr << "grabbing event" << endl << endl;
- cSchedulesLock schedLock;
+ cSchedule const* schedule;
#if VDRVERSNUM >= 20301
- LOCK_SCHEDULES_READ;
- cSchedule const* schedule = Schedules->GetSchedule( channelid );
+ {
+ LOCK_SCHEDULES_READ;
+ schedule = Schedules->GetSchedule( channelid );
+ }
#else
+ cSchedulesLock schedLock;
cSchedules const* schedules = cSchedules::Schedules( schedLock );
- cSchedule const* schedule = schedules->GetSchedule( channelid );
+ schedule = schedules->GetSchedule( channelid );
#endif
eventTimer.reset( new cTimer( schedule->GetEvent( eventid ) ) );