Supersedes !7928 with some test tweaks:
* Test that shutdown waits for any queued handler,
* Use message loop only when necessary (DQTYPE_THREAD_CURRENT),
* Remove some non-deterministic refcount checks after shutdown, as dispatch thread might still hold some until it exits.
--
v2: coremessaging: Partially implement CreateDispatcherQueueController().
coremessaging/tests: Add CreateDispatcherQueueController() tests.
coremessaging/tests: Add IDispatcherQueueControllerStatics::CreateOnDedicatedThread() tests.
coremessaging: Add IDispatcherQueueControllerStatics stub.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8055
Please see: https://marc.info/?l=wine-devel&m=174715050805731 as well as the commit messages for more information.
--
v4: ntdll: Report more info about heap problems detected by ASan.
ntdll: Show (partial) stack trace in ASan reports.
ntdll: Add heap quarantine for ASan.
ntdll: Add asan poisoning and redzoning to heap allocator
ntdll: Implement ASan fake stack.
ntdll: Don't use address of local variables as the frame address.
ntdll: During unwind, also check if frame is on fake stack.
ntdll: Implement __asan_{un,}poison_memory_region.
ntdll: Make sure to not write into poisoned memory in KeUserModeCallback.
ntdll: Implement __asan_set_shadow_*.
ntdll: Implement reporting of ASan errors.
ntdll: Implement __asan_{memory,region}_is_poisoned.
ntdll: Implement __asan_{un,}poison_stack_memory.
ntdll: Unpoison stack in __asan_handle_no_return.
ntdll: Add API for checking whether address is in fake stack frame.
kernel32: Check for poison in LocalLock if ASan is enabled.
kernel32: Fix ASan reports in IsBad*
ntdll: Call __asan_handle_no_return in RtlRestoreContext.
makedep: Support sanitizer flags.
asan_dynamic_thunk: Add ASan dynamic thunk for DLLs.
ntdll: Add stub ASan runtime.
loader: Disable sanitization.
configure: Check for sanitizer support.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8026
This fixes an issue seen with Steam, which calls `WinHttpGetProxyForUrl()` before pinging WebSocket servers to determine which has the lowest latency. The `WinHttpGetProxyForUrl()`/`WinHttpDetectAutoProxyConfigUrl()` call seems to be included in the timing, and `WinHttpDetectAutoProxyConfigUrl()` taking too long can cause the ping to time out/fail.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8049