From c430d84a28a320ad91fd42d6d108d30812fd5c8c Mon Sep 17 00:00:00 2001 From: Jasmin Jessich Date: Fri, 9 Jun 2017 01:15:27 +0200 Subject: Fixed lock order in edit_timer.ecpp - Move the schedules lock into a block and execute "new cTimer(..." with unlocked Schedules lists. --- pages/edit_timer.ecpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'pages') 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 ) ) ); -- cgit v1.2.3