[PATCH 3/5] winepulse: Add audioclient

Andrew Eikum aeikum at codeweavers.com
Mon Nov 2 19:07:32 CST 2015


On Tue, Nov 03, 2015 at 01:32:01AM +0100, Sebastian Lackner wrote:
> I know this patch is already committed, but still...
> 
> On 29.10.2015 18:04, Andrew Eikum wrote:
> >          }
> >          if (pulse_ml)
> >              pa_mainloop_quit(pulse_ml, 0);
> > +        if (pulse_thread) {
> > +            WaitForSingleObject(pulse_thread, INFINITE);
> 
> This can't work. You can't wait for a thread while holding the loader lock.
> 

Hm, I wondered about this, and it did seem to work when I tested it.

> >  
> > +static DWORD CALLBACK pulse_mainloop_thread(void *tmp) {
> > +    int ret;
> > +    pulse_ml = pa_mainloop_new();
> 
> I might be wrong, but I see a risk here that the pulse_ml conflicts with the use in pulse_test_connect().
> Is it guaranteed that pulse_test_connect() is only called once after loading the DLL?
> 

Yeah, pulse_test_connect() is called only from GetPriority, which is
only called once from mmdevapi, when it's determining which driver to
use.

Andrew



More information about the wine-devel mailing list