43 lines
1.2 KiB
Diff
43 lines
1.2 KiB
Diff
From 4c71fdd22dbfaf7b5fb7de62bbc9dd4002e788db Mon Sep 17 00:00:00 2001
|
|
From: Lennart Poettering <mznyfn@0pointer.de>
|
|
Date: Tue, 4 Aug 2009 23:56:00 +0200
|
|
Subject: [PATCH 11/11] pulse: immediately trigger EIO when connection is dropped
|
|
|
|
When the connection is dropped notify the application immediately
|
|
instead of waiting until the applications calls into us the next time.
|
|
|
|
This makes "aplay" handle connections shutdown similar to hardware
|
|
unplugs: an immediate EIO is thrown.
|
|
|
|
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
---
|
|
pulse/pulse.c | 9 ++++++++-
|
|
1 files changed, 8 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/pulse/pulse.c b/pulse/pulse.c
|
|
index 9c05171..f26363a 100644
|
|
--- a/pulse/pulse.c
|
|
+++ b/pulse/pulse.c
|
|
@@ -77,10 +77,17 @@ int pulse_wait_operation(snd_pulse_t * p, pa_operation * o)
|
|
|
|
static void context_state_cb(pa_context * c, void *userdata)
|
|
{
|
|
+ pa_context_state_t state;
|
|
snd_pulse_t *p = userdata;
|
|
assert(c);
|
|
|
|
- switch (pa_context_get_state(c)) {
|
|
+ state = pa_context_get_state(c);
|
|
+
|
|
+ /* When we get disconnected, tell the process */
|
|
+ if (!PA_CONTEXT_IS_GOOD(state))
|
|
+ pulse_poll_activate(p);
|
|
+
|
|
+ switch (state) {
|
|
case PA_CONTEXT_READY:
|
|
case PA_CONTEXT_TERMINATED:
|
|
case PA_CONTEXT_FAILED:
|
|
--
|
|
1.6.4
|
|
|