'Twas brillig, and R?mi Denis-Courmont at 18/07/11 17:36 did gyre and gimble: > Hello, > > I might have missed something obvious but there seems to be a race condition > resulting in a deadlock in libpulse 0.9.22 (Debian). > > I have stream with prebuf disabled (zero). When the Close() function below > gets called, if the stream is _not_ corked, the pa_stream_drain() callback > never gets called, so pa_threaded_mainloop_wait() never returns and the whole > process jams. > > This seems timing dependent: if I put a gdb breakpoint on > pa_operation_get_state() then continue, the callback does get called and the > process does not get stuck on the condition variable. There is also no problem > if the stream is corked, in which case we use pa_stream_flush() instead of > pa_stream_drain(). Thanks for creating the bug. It'll be easier to track now. :) https://bugs.freedesktop.org/show_bug.cgi?id=39459 Col -- Colin Guthrie gmane(at)colin.guthr.ie http://colin.guthr.ie/ Day Job: Tribalogic Limited [http://www.tribalogic.net/] Open Source: Mageia Contributor [http://www.mageia.org/] PulseAudio Hacker [http://www.pulseaudio.org/] Trac Hacker [http://trac.edgewall.org/]