summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2012-09-29 11:49:11 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2012-09-29 11:49:11 +0200
commitc5dfaf9681b25de03fe18909bd08f52797c2cf41 (patch)
tree24b62ab108ddc796c8cfeb53b4d3307bd678b2b1
parent62dee6514ae8a704087206cede6831e049c72000 (diff)
downloadvdr-c5dfaf9681b25de03fe18909bd08f52797c2cf41.tar.gz
vdr-c5dfaf9681b25de03fe18909bd08f52797c2cf41.tar.bz2
Moved cleaning up the EPG data and writing the epg.data file into a separate thread (cont'd)
-rw-r--r--epg.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/epg.c b/epg.c
index ac5792a3..d96c0fda 100644
--- a/epg.c
+++ b/epg.c
@@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
- * $Id: epg.c 2.19 2012/09/24 13:24:02 kls Exp $
+ * $Id: epg.c 2.20 2012/09/29 11:49:11 kls Exp $
*/
#include "epg.h"
@@ -1123,6 +1123,8 @@ bool cSchedule::Read(FILE *f, cSchedules *Schedules)
// --- cEpgDataWriter ---------------------------------------------------------
class cEpgDataWriter : public cThread {
+private:
+ cMutex mutex;
protected:
virtual void Action(void);
public:
@@ -1144,6 +1146,7 @@ void cEpgDataWriter::Action(void)
void cEpgDataWriter::Perform(void)
{
+ cMutexLock MutexLock(&mutex); // to make sure fore- and background calls don't cause parellel dumps!
{
cSchedulesLock SchedulesLock(true, 1000);
cSchedules *s = (cSchedules *)cSchedules::Schedules(SchedulesLock);