diff options
author | schmirl <schmirl> | 2007-04-02 10:32:34 +0000 |
---|---|---|
committer | schmirl <schmirl> | 2007-04-02 10:32:34 +0000 |
commit | 525574f9b01275aaff3e1c923cc91404365d501e (patch) | |
tree | 0533e2aaecdd3e7a1fe26176d12895f9bd054bc0 /server/streamer.c | |
parent | cd7d4e3588af2cc36c8366fc8d65d0627a372c32 (diff) | |
download | vdr-plugin-streamdev-525574f9b01275aaff3e1c923cc91404365d501e.tar.gz vdr-plugin-streamdev-525574f9b01275aaff3e1c923cc91404365d501e.tar.bz2 |
Close connection when client is gone. Fixes high CPU load problem (#201)
Modified Files:
server/connection.h server/connectionHTTP.h
server/connectionVTP.h server/server.c server/streamer.c
server/streamer.h tools/select.c tools/select.h tools/source.c
Diffstat (limited to 'server/streamer.c')
-rw-r--r-- | server/streamer.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/server/streamer.c b/server/streamer.c index 582fc6a..63d2f60 100644 --- a/server/streamer.c +++ b/server/streamer.c @@ -1,5 +1,5 @@ /* - * $Id: streamer.c,v 1.14 2005/05/09 20:22:29 lordjaxom Exp $ + * $Id: streamer.c,v 1.15 2007/04/02 10:32:34 schmirl Exp $ */ #include <vdr/ringbuffer.h> @@ -40,6 +40,9 @@ void cStreamdevWriter::Action(void) uchar *block = NULL; int count, offset = 0; m_Active = true; + + sel.Clear(); + sel.Add(*m_Socket, true); while (m_Active) { if (block == NULL) { block = m_Streamer->Get(count); @@ -47,9 +50,7 @@ void cStreamdevWriter::Action(void) } if (block != NULL) { - sel.Clear(); - sel.Add(*m_Socket, true); - if (sel.Select(500) == -1) { + if (sel.Select(15000) == -1) { esyslog("ERROR: streamdev-server: couldn't send data: %m"); break; } |