summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2006-10-14 10:46:19 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2006-10-14 10:46:19 +0200
commit3a9deab56cf59a7620cf6e46411bcb4dd3e79f87 (patch)
tree018290cd52f19aa18fe767ff01ad7f6a0821dfce
parent93d2941ebe777550559b4c27bfc3b04806d684f7 (diff)
downloadvdr-3a9deab56cf59a7620cf6e46411bcb4dd3e79f87.tar.gz
vdr-3a9deab56cf59a7620cf6e46411bcb4dd3e79f87.tar.bz2
cRemote::PutMacro() now sets a lock while it expands the macro
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--remote.c3
3 files changed, 5 insertions, 1 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 83468671..d596ec06 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1831,6 +1831,7 @@ Petri Hintukainen <Petri.Hintukainen@hut.fi>
in a key macro
for pointing out that keys from expanded key macros should be put into the front of
the key queue to avoid problems if the queue is not empty at that time
+ for making cRemote::PutMacro() set a lock while it expands the macro
Marcel Schaeben <mts280@gmx.de>
for his "Easy Input" patch
diff --git a/HISTORY b/HISTORY
index 32606cda..c5418d8a 100644
--- a/HISTORY
+++ b/HISTORY
@@ -4964,3 +4964,5 @@ Video Disk Recorder Revision History
avoid problems if the queue is not empty at that time (based on a patch from
Petri Hintukainen).
- cKeyMacro now has an explicit counter for the number of keys it contains.
+- cRemote::PutMacro() now sets a lock while it expands the macro (thanks to
+ Petri Hintukainen).
diff --git a/remote.c b/remote.c
index 06b3bb1c..6f63fcd9 100644
--- a/remote.c
+++ b/remote.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: remote.c 1.52 2006/10/14 10:24:13 kls Exp $
+ * $Id: remote.c 1.53 2006/10/14 10:44:02 kls Exp $
*/
#include "remote.h"
@@ -106,6 +106,7 @@ bool cRemote::PutMacro(eKeys Key)
const cKeyMacro *km = KeyMacros.Get(Key);
if (km) {
plugin = km->Plugin();
+ cMutexLock MutexLock(&mutex);
for (int i = km->NumKeys(); --i > 0; ) {
if (!Put(km->Macro()[i], true))
return false;