mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed the locking sequence when starting a recording
This commit is contained in:
parent
2751e239eb
commit
a4c851f759
1
HISTORY
1
HISTORY
@ -9064,3 +9064,4 @@ Video Disk Recorder Revision History
|
|||||||
sequence, the 20 most recent locks will be printed to stderr, followed by a
|
sequence, the 20 most recent locks will be printed to stderr, followed by a
|
||||||
backtrace that led to the call in question.
|
backtrace that led to the call in question.
|
||||||
- Fixed the locking sequence when dumping EPG data.
|
- Fixed the locking sequence when dumping EPG data.
|
||||||
|
- Fixed the locking sequence when starting a recording.
|
||||||
|
8
menu.c
8
menu.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: menu.c 4.29 2017/05/21 13:18:26 kls Exp $
|
* $Id: menu.c 4.30 2017/05/28 21:14:20 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
@ -5056,7 +5056,8 @@ cRecordControl::cRecordControl(cDevice *Device, cTimers *Timers, cTimer *Timer,
|
|||||||
Timers->SetModified();
|
Timers->SetModified();
|
||||||
// We're going to work with an event here, so we need to prevent
|
// We're going to work with an event here, so we need to prevent
|
||||||
// others from modifying any EPG data:
|
// others from modifying any EPG data:
|
||||||
LOCK_SCHEDULES_READ;
|
cStateKey SchedulesStateKey;
|
||||||
|
cSchedules::GetSchedulesRead(SchedulesStateKey);
|
||||||
|
|
||||||
event = NULL;
|
event = NULL;
|
||||||
fileName = NULL;
|
fileName = NULL;
|
||||||
@ -5092,6 +5093,7 @@ cRecordControl::cRecordControl(cDevice *Device, cTimers *Timers, cTimer *Timer,
|
|||||||
cReplayControl::SetRecording(fileName);
|
cReplayControl::SetRecording(fileName);
|
||||||
}
|
}
|
||||||
timer = NULL;
|
timer = NULL;
|
||||||
|
SchedulesStateKey.Remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5105,6 +5107,7 @@ cRecordControl::cRecordControl(cDevice *Device, cTimers *Timers, cTimer *Timer,
|
|||||||
cStatus::MsgRecording(device, Recording.Name(), Recording.FileName(), true);
|
cStatus::MsgRecording(device, Recording.Name(), Recording.FileName(), true);
|
||||||
if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
|
if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
|
||||||
cReplayControl::SetRecording(fileName);
|
cReplayControl::SetRecording(fileName);
|
||||||
|
SchedulesStateKey.Remove();
|
||||||
LOCK_RECORDINGS_WRITE;
|
LOCK_RECORDINGS_WRITE;
|
||||||
Recordings->AddByName(fileName);
|
Recordings->AddByName(fileName);
|
||||||
return;
|
return;
|
||||||
@ -5118,6 +5121,7 @@ cRecordControl::cRecordControl(cDevice *Device, cTimers *Timers, cTimer *Timer,
|
|||||||
Timers->Del(timer);
|
Timers->Del(timer);
|
||||||
timer = NULL;
|
timer = NULL;
|
||||||
}
|
}
|
||||||
|
SchedulesStateKey.Remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
cRecordControl::~cRecordControl()
|
cRecordControl::~cRecordControl()
|
||||||
|
Loading…
Reference in New Issue
Block a user