diff options
author | phintuka <phintuka> | 2009-07-15 16:45:34 +0000 |
---|---|---|
committer | phintuka <phintuka> | 2009-07-15 16:45:34 +0000 |
commit | 9ba0ec21b5cb0206164421b8727203f65bc588ab (patch) | |
tree | 76d5a2d715e456ce67e082f1e84019cde9500800 | |
parent | dd6599dbc1dfe53e252eefb05cedb6370ba2a035 (diff) | |
download | xineliboutput-9ba0ec21b5cb0206164421b8727203f65bc588ab.tar.gz xineliboutput-9ba0ec21b5cb0206164421b8727203f65bc588ab.tar.bz2 |
read_block() returns EINTR when demux_action_pending flag is set
-rw-r--r-- | xine_input_vdr.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/xine_input_vdr.c b/xine_input_vdr.c index c83220b4..fc3c418d 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.263 2009-07-13 11:11:06 phintuka Exp $ + * $Id: xine_input_vdr.c,v 1.264 2009-07-15 16:45:34 phintuka Exp $ * */ @@ -4429,7 +4429,7 @@ static buf_element_t *vdr_plugin_read_block (input_plugin_t *this_gen, /* Return immediately if demux_action_pending flag is set */ if (this->stream->demux_action_pending) { - errno = EAGAIN; + errno = EINTR; return NULL; } @@ -4460,7 +4460,7 @@ static buf_element_t *vdr_plugin_read_block (input_plugin_t *this_gen, } else { this->read_timeouts = 0; } - errno = EAGAIN; + errno = this->stream->demux_action_pending ? EINTR : EAGAIN; return NULL; } this->read_timeouts = 0; @@ -4578,9 +4578,10 @@ static void vdr_plugin_dispose (input_plugin_t *this_gen) /* event queue(s) and listener threads */ LOGDBG("Disposing event queues"); - if (this->event_queue) + if (this->event_queue) { xine_event_dispose_queue (this->event_queue); - this->event_queue = NULL; + this->event_queue = NULL; + } pthread_cond_broadcast(&this->engine_flushed); while(pthread_cond_destroy(&this->engine_flushed) == EBUSY) { |