summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2009-07-16 13:59:12 +0000
committerphintuka <phintuka>2009-07-16 13:59:12 +0000
commitcb7ed4c17580abe7765f4030b844034dc8404b91 (patch)
treebc6e9df9c17ff3957a2abe405960feb556228aad
parent376757809ace22c368a2d057ebdbe3112cd00c1b (diff)
downloadxineliboutput-cb7ed4c17580abe7765f4030b844034dc8404b91.tar.gz
xineliboutput-cb7ed4c17580abe7765f4030b844034dc8404b91.tar.bz2
vdr_plugin_read_block_tcp(): use _x_io_select() for polling
(_x_io_select() is interrupted when demux_action_pending is set)
-rw-r--r--xine_input_vdr.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/xine_input_vdr.c b/xine_input_vdr.c
index 28800a47..3d9d0599 100644
--- a/xine_input_vdr.c
+++ b/xine_input_vdr.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_input_vdr.c,v 1.268 2009-07-15 17:05:40 phintuka Exp $
+ * $Id: xine_input_vdr.c,v 1.269 2009-07-16 13:59:12 phintuka Exp $
*
*/
@@ -3563,7 +3563,7 @@ static buf_element_t *vdr_plugin_read_block_tcp(vdr_input_plugin_t *this)
if (read_buffer && read_buffer->size >= sizeof(stream_tcp_header_t))
todo = read_buffer->size + ((stream_tcp_header_t *)read_buffer->content)->len;
- while (XIO_READY == (result = io_select_rd(this->fd_data))) {
+ while (XIO_READY == (result = _x_io_select(this->stream, this->fd_data, XIO_READ_READY, 100))) {
pthread_testcancel();
if (!this->control_running || this->fd_data < 0) {
@@ -3656,7 +3656,7 @@ static int vdr_plugin_read_net_tcp(vdr_input_plugin_t *this)
this->block_buffer->put(this->block_buffer, buf);
return XIO_READY;
}
- if (errno == EAGAIN)
+ if (errno == EAGAIN || errno == EINTR)
return XIO_TIMEOUT;
return XIO_ERROR;
}