[PATCH 2/5] winepulse: Add format and period probing

Andrew Eikum aeikum at codeweavers.com
Thu Oct 29 13:01:23 CDT 2015


On Tue, Oct 20, 2015 at 12:15:22PM +0900, Alexandre Julliard wrote:
> Andrew Eikum <aeikum at codeweavers.com> writes:
> 
> > Hm, it works here whether PA is running or not. What's your setup? PA
> > is obviously installed. Is it running? What version do you have
> > installed? Can you give me a +devenum,+mmdevapi,+pulse,+alsa,+tid,+seh
> > log?
> 
> Version 7.0, it's running AFAICT. Log is attached. Note that this is
> with only the first patch applied, it also crashes (but not always which
> is why I missed it at first). Other sound tests crash as well.
> 

This was seen in my patchset, and not in wine-staging, because we
unload the pulse driver after it returns Low priority which is lower
than winealsa's Preferred priority. Winepulse misbehaved when it was
unloaded. In wine-staging, the Pulse driver is always Preferred and so
would never be unloaded.

I believe the crash happened because the DLL would be unloaded while
the PA mainloop thread was still running. DllMain does call
pa_mainloop_quit, but doesn't wait for the thread to actually exit.
The mainloop thread would occasionally trigger a callback after the
module has been unloaded, before acknowledging the quit status. This
is why you didn't always see the crash.

This has been remedied in the latest patchset. We now wait for the
thread to quit in DllMain, see patch 3/5.

Andrew



More information about the wine-devel mailing list