diff options
author | lordjaxom <lordjaxom> | 2005-04-27 17:55:43 +0000 |
---|---|---|
committer | lordjaxom <lordjaxom> | 2005-04-27 17:55:43 +0000 |
commit | 11dd989dfba4bd46548f9ce1e9577384f5040907 (patch) | |
tree | 97bc7ba69c802ef4658d891949f1d99234f4f774 /server | |
parent | c18ebf91586cfa7c0407f349939b298e24432cb5 (diff) | |
download | vdr-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.c | 8 |
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) |