aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2021-02-26 16:13:38 +0200
committerMartin Storsjö <martin@martin.st>2021-03-17 10:09:10 +0200
commit42d653d294a85ad3a5df1ba0827aeb1ecd99ebe3 (patch)
treebceac82d613e41b1889b308ffb9c5bcd496c508e
parentfd302e21b37e9fd9c455504e18f335ff798031d1 (diff)
downloadllvm-42d653d294a85ad3a5df1ba0827aeb1ecd99ebe3.zip
llvm-42d653d294a85ad3a5df1ba0827aeb1ecd99ebe3.tar.gz
llvm-42d653d294a85ad3a5df1ba0827aeb1ecd99ebe3.tar.bz2
[libcxx] Simplify rounding of durations in win32 __libcpp_thread_sleep_for
Also fix a comment typo, and remove a superfluous "std::" qualififcation in __libcpp_semaphore_wait_timed for consistency. This mirrors what was suggested in review of 1773eec6928f4e37b377e23b84d7a2a07d0d1d0d. Differential Revision: https://reviews.llvm.org/D98015
-rw-r--r--libcxx/src/support/win32/thread_win32.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/libcxx/src/support/win32/thread_win32.cpp b/libcxx/src/support/win32/thread_win32.cpp
index 2b1aa56..63c5aa6 100644
--- a/libcxx/src/support/win32/thread_win32.cpp
+++ b/libcxx/src/support/win32/thread_win32.cpp
@@ -246,10 +246,8 @@ void __libcpp_thread_yield()
void __libcpp_thread_sleep_for(const chrono::nanoseconds& __ns)
{
- using namespace chrono;
- // round-up to the nearest milisecond
- milliseconds __ms =
- duration_cast<milliseconds>(__ns + chrono::nanoseconds(999999));
+ // round-up to the nearest millisecond
+ chrono::milliseconds __ms = chrono::ceil<chrono::milliseconds>(__ns);
// FIXME(compnerd) this should be an alertable sleep (WFSO or SleepEx)
Sleep(__ms.count());
}
@@ -305,7 +303,7 @@ bool __libcpp_semaphore_wait(__libcpp_semaphore_t* __sem)
bool __libcpp_semaphore_wait_timed(__libcpp_semaphore_t* __sem,
chrono::nanoseconds const& __ns)
{
- chrono::milliseconds __ms = std::chrono::ceil<chrono::milliseconds>(__ns);
+ chrono::milliseconds __ms = chrono::ceil<chrono::milliseconds>(__ns);
return WaitForSingleObjectEx(*(PHANDLE)__sem, __ms.count(), false) ==
WAIT_OBJECT_0;
}