diff options
author | bju <bju@maxi.fritz.box> | 2011-09-25 22:40:06 +0200 |
---|---|---|
committer | bju <bju@maxi.fritz.box> | 2011-09-25 22:40:06 +0200 |
commit | 5bbc68c66ef3ed02b3b1f9f98d0fc61448a79b43 (patch) | |
tree | 1a313a70b94a8a5d031ba8661d72f173419ac0ed | |
parent | 58517677285feb87c6eb78ae608c3361d4acf28e (diff) | |
download | vdr-manager-5bbc68c66ef3ed02b3b1f9f98d0fc61448a79b43.tar.gz vdr-manager-5bbc68c66ef3ed02b3b1f9f98d0fc61448a79b43.tar.bz2 |
Timer modification was not handled thread safe - specially not with changes done by vdr itself. Now it's done the way used by the SVDRP timer
commands.
-rw-r--r-- | vdr-vdrmanager/helpers.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/vdr-vdrmanager/helpers.cpp b/vdr-vdrmanager/helpers.cpp index 23a32eb..96ad230 100644 --- a/vdr-vdrmanager/helpers.cpp +++ b/vdr-vdrmanager/helpers.cpp @@ -175,6 +175,7 @@ string cHelpers::SetTimerIntern(string args) { return "!ERROR\r\n"; } + Timers.IncBeingEdited(); if (!number) { // new timer Timers.Add(timer); @@ -183,6 +184,7 @@ string cHelpers::SetTimerIntern(string args) { delete timer; cTimer * oldTimer = Timers.Get(number); if (!oldTimer) { + Timers.DecBeingEdited(); return "!ERROR\r\n"; } if (delTimer) { @@ -191,7 +193,8 @@ string cHelpers::SetTimerIntern(string args) { oldTimer->Parse(params.c_str()); } } - Timers.Save(); + Timers.SetModified(); + Timers.DecBeingEdited(); return "START\r\nEND\r\n"; } |