This allows *BSDs to also have a fast path similar to futexes for thread-ID alerts.
Also a kevent with `EV_CLEAR` and `NOTE_TRIGGER` maps perfectly to the thread alertable state, fixing the issue of the current mach-semaphore implementation not correctly waiting in the test case below:
```
NtAlertThreadByThreadId((HANDLE)GetCurrentThreadId());
NtAlertThreadByThreadId((HANDLE)GetCurrentThreadId());
NtWaitForAlertByThreadId(NULL, NULL);
NtWaitForAlertByThreadId(NULL, NULL);
```
I took the liberty to remove this mach semaphore implementation, since all versions of OSX have supported kqueue().
--
v5: ntdll: Implement thread-ID alerts using ulock.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4049
This is a continuation to !406. With this MR all the tests pass on Windows. [The next step is to allow the CI to run crosstests on Windows](https://gitlab.winehq.org/giomasce/vkd3d/-/commits/ci3).
--
v2: tests: Skip processing resources according to [require] directives.
tests: Do not test matrix majority on SM1-3.
tests: Fix the usage of require directives.
tests: Remove an irrelevant input from a test.
tests: Do not test integral types for SM1-3.
tests: Do not use global half values.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/412
Fixes a hang when joining a multiplayer game in Burnout Paradise Remastered. The game expects to find a space in the device name and spins forever trying if it can't.
--
v2: winepulse.drv: Change device description to "PulseAudio Device".
https://gitlab.winehq.org/wine/wine/-/merge_requests/4096
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v20: vkd3d-shader/tpf: Write out 'switch' statements.
vkd3d-shader/hlsl: Add a pass to normalize switch cases blocks.
vkd3d-shader/hlsl: Add a pass to remove unreachable code.
vkd3d-shader/hlsl: Add copy propagation logic for switches.
vkd3d-shader/hlsl: Validate break/continue context.
vkd3d-shader/hlsl: Check for duplicate case statements.
vkd3d-shader/hlsl: Add initial support for parsing 'switch' statements.
tests: Add some tests for the 'switch' statements.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/361