From 3a9deab56cf59a7620cf6e46411bcb4dd3e79f87 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 14 Oct 2006 10:46:19 +0200 Subject: [PATCH] cRemote::PutMacro() now sets a lock while it expands the macro --- CONTRIBUTORS | 1 + HISTORY | 2 ++ remote.c | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 83468671..d596ec06 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1831,6 +1831,7 @@ Petri Hintukainen 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 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;