summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorlordjaxom <lordjaxom>2005-04-27 17:55:43 +0000
committerlordjaxom <lordjaxom>2005-04-27 17:55:43 +0000
commit11dd989dfba4bd46548f9ce1e9577384f5040907 (patch)
tree97bc7ba69c802ef4658d891949f1d99234f4f774 /server
parentc18ebf91586cfa7c0407f349939b298e24432cb5 (diff)
downloadvdr-plugin-streamdev-11dd989dfba4bd46548f9ce1e9577384f5040907.tar.gz
vdr-plugin-streamdev-11dd989dfba4bd46548f9ce1e9577384f5040907.tar.bz2
- protected cStreamer::Stop() from being called concurrently
Diffstat (limited to 'server')
-rw-r--r--server/streamer.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/server/streamer.c b/server/streamer.c
index bfc0203..d10b230 100644
--- a/server/streamer.c
+++ b/server/streamer.c
@@ -1,5 +1,5 @@
/*
- * $Id: streamer.c,v 1.9 2005/03/24 21:31:38 lordjaxom Exp $
+ * $Id: streamer.c,v 1.10 2005/04/27 17:55:43 lordjaxom Exp $
*/
#include <vdr/ringbuffer.h>
@@ -73,8 +73,8 @@ cStreamdevStreamer::cStreamdevStreamer(const char *Name):
m_Active(false),
m_Running(false),
m_Writer(NULL),
- m_RingBuffer(new cRingBufferLinear(STREAMERBUFSIZE, TS_SIZE * 2, true,
- "streamdev-streamer")),
+ m_RingBuffer(new cRingBufferLinear(STREAMERBUFSIZE, TS_SIZE * 2,
+ true, "streamdev-streamer")),
m_SendBuffer(new cRingBufferLinear(WRITERBUFSIZE, TS_SIZE * 2))
{
m_RingBuffer->SetTimeouts(0, 100);
@@ -107,6 +107,7 @@ void cStreamdevStreamer::Activate(bool On)
void cStreamdevStreamer::Stop(void)
{
+ Lock();
if (m_Active) {
Dprintf("stopping streamer\n");
m_Active = false;
@@ -117,6 +118,7 @@ void cStreamdevStreamer::Stop(void)
m_Running = false;
DELETENULL(m_Writer);
}
+ Unlock();
}
void cStreamdevStreamer::Action(void)