Commit 71a66919 authored by Davide Beatrici's avatar Davide Beatrici Committed by Alexandre Julliard

winepulse: Lock sessions in AudioClient's Start.

parent 45cab273
......@@ -952,24 +952,28 @@ static HRESULT WINAPI AudioClient_Start(IAudioClient3 *iface)
{
ACImpl *This = impl_from_IAudioClient3(iface);
struct start_params params;
HRESULT hr;
TRACE("(%p)\n", This);
if (!This->stream)
sessions_lock();
if (!This->stream) {
sessions_unlock();
return AUDCLNT_E_NOT_INITIALIZED;
}
params.stream = This->stream;
pulse_call(start, &params);
if (FAILED(hr = params.result))
return hr;
if (!This->timer_thread) {
if (SUCCEEDED(params.result) && !This->timer_thread) {
This->timer_thread = CreateThread(NULL, 0, pulse_timer_cb, This, 0, NULL);
SetThreadPriority(This->timer_thread, THREAD_PRIORITY_TIME_CRITICAL);
}
return S_OK;
sessions_unlock();
return params.result;
}
extern HRESULT WINAPI client_Stop(IAudioClient3 *iface);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment