[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