[libcxx-commits] [PATCH] D97539: [libcxx] Implement semaphores for windows
Martin Storsjö via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Feb 26 06:01:33 PST 2021
mstorsjo added inline comments.
================
Comment at: libcxx/src/support/win32/thread_win32.cpp:11-12
#include <__threading_support>
+#define NOMINMAX
#include <windows.h>
#include <process.h>
----------------
curdeius wrote:
> A bit unrelated to this patch...
>
> I know that compile times are not a problem in libc++, but could you define `WIN32_LEAN_AND_MEAN` before including `windows.h`?
>
> I don't think we use any of the following (https://docs.microsoft.com/en-us/windows/win32/winprog/using-the-windows-headers#faster-builds-with-smaller-header-files):
> ```
> Define WIN32_LEAN_AND_MEAN to exclude APIs such as Cryptography, DDE, RPC, Shell, and Windows Sockets.
> ```
I guess I could add that here as well.
================
Comment at: libcxx/src/support/win32/thread_win32.cpp:309
+ milliseconds __ms =
+ duration_cast<milliseconds>(__ns + chrono::nanoseconds(999999));
+ return WaitForSingleObjectEx(*(PHANDLE)__sem, __ms.count(), false) ==
----------------
curdeius wrote:
> No need for `chrono::`.
> Maybe it would be clearer to write `+ milliseconds(1) - nanoseconds(1)`?
> Or even:
> ```
> milliseconds __ms = std::chrono::ceil<milliseconds>(__ns);
> ```
>
> Even if `ceil` is a C++17 addition, we only compile libc++ with C++17 or C++20.
That looks nice to me. FWIW this bit is a copy from line 250 (but I wouldn't go and change that in this patch).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D97539/new/
https://reviews.llvm.org/D97539
More information about the libcxx-commits
mailing list