On Wed, 2012-11-28 at 19:20 +0100, Mikel Astiz wrote: > From: Mikel Astiz <mikel.astiz at bmw-carit.de> > > The sink can be resumed while the source is still in PA_SOURCE_INIT. > This is the case if a module such as module-stream-restore routes the > audio to the sink during pa_sink_put(), leading to an inconsistent > state: the sink stays RUNNING but the transport is not actually > acquired. Ack from me. I think Arun wants to check this too, so not pushing yet, but to me the patch makes perfect sense. Slightly related comment, maybe this if (u->sink->thread_info.state != PA_SINK_SUSPENDED) break; just before the changed part should be changed to if (PA_SINK_IS_OPENED(u->sink->thread_info.state)) break; so that INIT->IDLE transitions will work too, if we decide some day that it's not a good idea to start the devices suspended. (I think it makes sense to start them suspended, but relying on module-suspend-on-idle for unsuspending is not good.) -- Tanu