summaryrefslogtreecommitdiff
path: root/tools/source.c
diff options
context:
space:
mode:
authorschmirl <schmirl>2007-04-02 10:32:34 +0000
committerschmirl <schmirl>2007-04-02 10:32:34 +0000
commit525574f9b01275aaff3e1c923cc91404365d501e (patch)
tree0533e2aaecdd3e7a1fe26176d12895f9bd054bc0 /tools/source.c
parentcd7d4e3588af2cc36c8366fc8d65d0627a372c32 (diff)
downloadvdr-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 'tools/source.c')
-rw-r--r--tools/source.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/tools/source.c b/tools/source.c
index c832e2f..80625e5 100644
--- a/tools/source.c
+++ b/tools/source.c
@@ -61,11 +61,11 @@ bool cTBSource::TimedWrite(const void *Buffer, size_t Length, uint TimeoutMs) {
cTimeMs starttime;
ms = TimeoutMs;
offs = 0;
+ sel.Clear();
+ sel.Add(m_Filed, true);
while (Length > 0) {
int b;
- sel.Clear();
- sel.Add(m_Filed, true);
if (sel.Select(ms) == -1)
return false;
@@ -90,11 +90,11 @@ bool cTBSource::SafeWrite(const void *Buffer, size_t Length) {
int offs;
offs = 0;
+ sel.Clear();
+ sel.Add(m_Filed, true);
while (Length > 0) {
int b;
- sel.Clear();
- sel.Add(m_Filed, true);
if (sel.Select() == -1)
return false;
@@ -128,9 +128,9 @@ ssize_t cTBSource::ReadUntil(void *Buffer, size_t Length, const char *Seq,
cTimeMs starttime;
ms = TimeoutMs;
+ sel.Clear();
+ sel.Add(m_Filed, false);
while (m_LineBuffer.size() < BUFSIZ) {
- sel.Clear();
- sel.Add(m_Filed, false);
if (sel.Select(ms) == -1)
return -1;