On Tue, Oct 20, 2015 at 12:15:22PM +0900, Alexandre Julliard wrote:
Andrew Eikum aeikum@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