Matteo Bruni (@Mystral) commented about dlls/d3dx10_43/d3dx10_43_main.c:
+ { + AcquireSRWLockExclusive(&thread_pump->io_lock); + thread_pump->io_count = THREAD_PUMP_EXITING; + ReleaseSRWLockExclusive(&thread_pump->io_lock); + RtlWakeAddressAll((void *)&thread_pump->io_count); + + AcquireSRWLockExclusive(&thread_pump->proc_lock); + thread_pump->proc_count = THREAD_PUMP_EXITING; + ReleaseSRWLockExclusive(&thread_pump->proc_lock); + RtlWakeAddressAll((void *)&thread_pump->proc_count); + + AcquireSRWLockExclusive(&thread_pump->device_lock); + thread_pump->device_count = THREAD_PUMP_EXITING; + ReleaseSRWLockExclusive(&thread_pump->device_lock); + + for (i = 0; i < thread_pump->threads_no; i++) Nitpick, we usually do "++i" in d3d code (obviously when either option works).
Similar for ++io_count and such. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/272#note_2436