[PATCH v3 0/9] MR272: d3dx10: Add D3DX10CreateThreadPump implementation.
Matteo Bruni (@Mystral)
wine at gitlab.winehq.org
Tue Jun 21 03:01:59 CDT 2022
Matteo Bruni (@Mystral) commented about dlls/d3dx10_43/d3dx10_43_main.c:
> {
> - FIXME("iface %p stub!\n", iface);
> - return E_NOTIMPL;
> + struct thread_pump *thread_pump = impl_from_ID3DX10ThreadPump(iface);
> + HRESULT hr;
> + LONG v;
> +
> + TRACE("iface %p.\n", iface);
> +
> + while(1)
> + {
> + if (FAILED((hr = ID3DX10ThreadPump_ProcessDeviceWorkItems(iface, UINT_MAX))))
> + return hr;
> +
> + if (!(v = thread_pump->processing_count))
> + break;
I think there is a theoretical race here with a work item that's being added at the same time. Assuming that's a legitimate use case.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/272#note_2441
More information about the wine-devel
mailing list