21 Jun
2022
21 Jun
'22
3:01 a.m.
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