summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschmirl <schmirl>2007-04-02 10:35:29 +0000
committerschmirl <schmirl>2007-04-02 10:35:29 +0000
commit69b754bef9e45c3f92be1e37c177c41a1fcba41c (patch)
tree164d1c6c17ff550f2a27f3965506d6ff70aab68d
parent525574f9b01275aaff3e1c923cc91404365d501e (diff)
downloadvdr-plugin-streamdev-69b754bef9e45c3f92be1e37c177c41a1fcba41c.tar.gz
vdr-plugin-streamdev-69b754bef9e45c3f92be1e37c177c41a1fcba41c.tar.bz2
Close pipe when externremux.sh is gone. Fixes high CPU load problem (#235)
-rw-r--r--remux/extern.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/remux/extern.c b/remux/extern.c
index 51c353c..3c95296 100644
--- a/remux/extern.c
+++ b/remux/extern.c
@@ -119,7 +119,15 @@ void cTSExt::Action(void)
if (FD_ISSET(m_Outpipe, &rfds)) {
int result;
if ((result = m_ResultBuffer->Read(m_Outpipe)) == -1) {
- LOG_ERROR_STR("read failed");
+ if (errno != EINTR) {
+ LOG_ERROR_STR("read failed");
+ m_Active = false;
+ }
+ break;
+ }
+ else if (result == 0) {
+ esyslog("streamdev-server: EOF reading from externremux");
+ m_Active = false;
break;
}
}