[PATCH v3 0/9] MR272: d3dx10: Add D3DX10CreateThreadPump implementation.

Matteo Bruni (@Mystral) wine at gitlab.winehq.org
Tue Jun 21 03:01:55 CDT 2022


Matteo Bruni (@Mystral) commented about dlls/d3dx10_43/d3dx10_43_main.c:
>  {
>      struct thread_pump *thread_pump = impl_from_ID3DX10ThreadPump(iface);
>      ULONG refcount = InterlockedDecrement(&thread_pump->refcount);
> +    struct work_item *iter, *next;
> +    struct list list;
> +    int i;
>  
>      TRACE("%p decreasing refcount to %lu.\n", iface, refcount);
>  
>      if (!refcount)
> +    {
> +        AcquireSRWLockExclusive(&thread_pump->io_lock);
> +        thread_pump->io_count = THREAD_PUMP_EXITING;
> +        ReleaseSRWLockExclusive(&thread_pump->io_lock);
> +        RtlWakeAddressAll((void *)&thread_pump->io_count);
It should be possible to drop the cast here and in all the other RtlWakeAddressAll() calls.

-- 
https://gitlab.winehq.org/wine/wine/-/merge_requests/272#note_2433



More information about the wine-devel mailing list