diff options
author | Jasmin Jessich <jasmin@anw.at> | 2017-06-09 01:15:27 +0200 |
---|---|---|
committer | Jasmin Jessich <jasmin@anw.at> | 2017-06-09 01:16:19 +0200 |
commit | c430d84a28a320ad91fd42d6d108d30812fd5c8c (patch) | |
tree | 8e8a8d7f10d8fc0f1fa7cd2e86efaa8fe0441be5 | |
parent | 52058cf83b8666d1132207470f42e2a535b8be90 (diff) | |
download | vdr-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.ecpp | 11 |
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 ) ) ); |