diff options
author | phintuka <phintuka> | 2009-07-16 13:59:12 +0000 |
---|---|---|
committer | phintuka <phintuka> | 2009-07-16 13:59:12 +0000 |
commit | cb7ed4c17580abe7765f4030b844034dc8404b91 (patch) | |
tree | bc6e9df9c17ff3957a2abe405960feb556228aad | |
parent | 376757809ace22c368a2d057ebdbe3112cd00c1b (diff) | |
download | xineliboutput-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.c | 6 |
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; } |