summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xine_input_vdr.c11
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) {