diff options
-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) { |