mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Added some missing locking
This commit is contained in:
parent
ccbef6ce6c
commit
e4e9d7a55f
3
HISTORY
3
HISTORY
@ -10034,7 +10034,7 @@ Video Disk Recorder Revision History
|
||||
(suggested by Stefan Hofmann).
|
||||
- Added vdrrootdir and incdir to vdr.pc (thanks to Stefan Hofmann).
|
||||
|
||||
2024-11-30:
|
||||
2024-12-02:
|
||||
|
||||
- Removed all DEPRECATED_* code.
|
||||
- Fixed error checking in case the fps value can't be determined by the frame parser.
|
||||
@ -10042,3 +10042,4 @@ Video Disk Recorder Revision History
|
||||
- The VDR homepage is now accessible via HTTPS.
|
||||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||||
- Fixed some typos in the translation files (thanks to Stefan Hofmann).
|
||||
- Added some missing locking.
|
||||
|
20
menu.c
20
menu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.c 5.18 2024/10/11 14:10:50 kls Exp $
|
||||
* $Id: menu.c 5.19 2024/12/02 12:40:56 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -1263,6 +1263,7 @@ void cMenuTimerItem::Set(void)
|
||||
}
|
||||
const char *File = timer->Pattern();
|
||||
if (!*File) {
|
||||
LOCK_SCHEDULES_READ;
|
||||
if (timer->HasFlags(tfSpawned) && timer->Event() && timer->Event()->Title())
|
||||
File = timer->Event()->Title();
|
||||
else {
|
||||
@ -1334,12 +1335,15 @@ void cMenuTimers::Set(void)
|
||||
const cTimer *CurrentTimer = GetTimer();
|
||||
cMenuTimerItem *CurrentItem = NULL;
|
||||
Clear();
|
||||
for (const cTimer *Timer = Timers->First(); Timer; Timer = Timers->Next(Timer)) {
|
||||
cMenuTimerItem *Item = new cMenuTimerItem(Timer);
|
||||
Add(Item);
|
||||
if (CurrentTimer && Timer->Id() == CurrentTimer->Id() && (!Timer->Remote() && !CurrentTimer->Remote() || Timer->Remote() && CurrentTimer->Remote() && strcmp(Timer->Remote(), CurrentTimer->Remote()) == 0))
|
||||
CurrentItem = Item;
|
||||
}
|
||||
{
|
||||
LOCK_SCHEDULES_READ;
|
||||
for (const cTimer *Timer = Timers->First(); Timer; Timer = Timers->Next(Timer)) {
|
||||
cMenuTimerItem *Item = new cMenuTimerItem(Timer);
|
||||
Add(Item);
|
||||
if (CurrentTimer && Timer->Id() == CurrentTimer->Id() && (!Timer->Remote() && !CurrentTimer->Remote() || Timer->Remote() && CurrentTimer->Remote() && strcmp(Timer->Remote(), CurrentTimer->Remote()) == 0))
|
||||
CurrentItem = Item;
|
||||
}
|
||||
}
|
||||
Sort();
|
||||
SetCurrent(CurrentItem ? CurrentItem : First());
|
||||
SetHelpKeys();
|
||||
@ -1454,6 +1458,7 @@ eOSState cMenuTimers::Info(void)
|
||||
return osContinue;
|
||||
LOCK_TIMERS_READ;
|
||||
LOCK_CHANNELS_READ;
|
||||
LOCK_SCHEDULES_READ;
|
||||
cTimer *Timer = GetTimer();
|
||||
if (Timer && Timer->Event())
|
||||
return AddSubMenu(new cMenuEvent(Timers, Channels, Timer->Event()));
|
||||
@ -1599,6 +1604,7 @@ static const char *TimerMatchChars = " tT iI";
|
||||
|
||||
bool cMenuScheduleItem::Update(const cTimers *Timers, bool Force)
|
||||
{
|
||||
LOCK_SCHEDULES_READ;
|
||||
eTimerMatch OldTimerMatch = timerMatch;
|
||||
bool OldTimerActive = timerActive;
|
||||
const cTimer *Timer = Timers->GetMatch(event, &timerMatch);
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: skinlcars.c 5.7 2024/09/21 10:53:07 kls Exp $
|
||||
* $Id: skinlcars.c 5.8 2024/12/02 12:40:56 kls Exp $
|
||||
*/
|
||||
|
||||
// "Star Trek: The Next Generation"(R) is a registered trademark of Paramount Pictures,
|
||||
@ -1259,6 +1259,7 @@ void cSkinLCARSDisplayMenu::DrawTimers(void)
|
||||
int NumDevices = 0;
|
||||
int y = ys04;
|
||||
// Timers and recording devices:
|
||||
LOCK_SCHEDULES_READ;
|
||||
while (1) {
|
||||
int NumTimers = 0;
|
||||
const cDevice *Device = NULL;
|
||||
|
3
vdr.c
3
vdr.c
@ -22,7 +22,7 @@
|
||||
*
|
||||
* The project's page is at https://www.tvdr.de
|
||||
*
|
||||
* $Id: vdr.c 5.17 2024/10/21 19:03:09 kls Exp $
|
||||
* $Id: vdr.c 5.18 2024/12/02 12:40:56 kls Exp $
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
@ -1140,6 +1140,7 @@ int main(int argc, char *argv[])
|
||||
if (Timer->Matches(Now, true, Setup.VpsMargin))
|
||||
InVpsMargin = true;
|
||||
else if (Timer->Event()) {
|
||||
LOCK_SCHEDULES_READ;
|
||||
InVpsMargin = Timer->Event()->StartTime() <= Now && Now < Timer->Event()->EndTime();
|
||||
NeedsTransponder = Timer->Event()->StartTime() - Now < VPSLOOKAHEADTIME * 3600 && !Timer->Event()->SeenWithin(VPSUPTODATETIME);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user