[libcxx-commits] [PATCH] D63328: [libc++] Avoid using timespec when it might not be available

Mikhail Maltsev via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Jun 21 01:30:22 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL364012: [libc++] Avoid using timespec when it might not be available (authored by miyuki, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Changed prior to commit:
  https://reviews.llvm.org/D63328?vs=204745&id=205949#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63328/new/

https://reviews.llvm.org/D63328

Files:
  libcxx/trunk/include/__threading_support
  libcxx/trunk/src/condition_variable.cpp
  libcxx/trunk/src/support/win32/thread_win32.cpp


Index: libcxx/trunk/include/__threading_support
===================================================================
--- libcxx/trunk/include/__threading_support
+++ libcxx/trunk/include/__threading_support
@@ -22,6 +22,8 @@
 # include <__external_threading>
 #elif !defined(_LIBCPP_HAS_NO_THREADS)
 
+typedef ::timespec __libcpp_timespec_t;
+
 #if defined(_LIBCPP_HAS_THREAD_API_PTHREAD)
 # include <pthread.h>
 # include <sched.h>
@@ -148,7 +150,7 @@
 
 _LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS
 int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m,
-                               timespec *__ts);
+                               __libcpp_timespec_t *__ts);
 
 _LIBCPP_THREAD_ABI_VISIBILITY
 int __libcpp_condvar_destroy(__libcpp_condvar_t* __cv);
@@ -287,7 +289,7 @@
 }
 
 int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m,
-                               timespec *__ts)
+                               __libcpp_timespec_t *__ts)
 {
   return pthread_cond_timedwait(__cv, __m, __ts);
 }
@@ -356,7 +358,7 @@
 {
    using namespace chrono;
    seconds __s = duration_cast<seconds>(__ns);
-   timespec __ts;
+   __libcpp_timespec_t __ts;
    typedef decltype(__ts.tv_sec) ts_sec;
    _LIBCPP_CONSTEXPR ts_sec __ts_sec_max = numeric_limits<ts_sec>::max();
 
Index: libcxx/trunk/src/support/win32/thread_win32.cpp
===================================================================
--- libcxx/trunk/src/support/win32/thread_win32.cpp
+++ libcxx/trunk/src/support/win32/thread_win32.cpp
@@ -110,7 +110,7 @@
 }
 
 int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m,
-                               timespec *__ts)
+                               __libcpp_timespec_t *__ts)
 {
   using namespace _VSTD::chrono;
 
Index: libcxx/trunk/src/condition_variable.cpp
===================================================================
--- libcxx/trunk/src/condition_variable.cpp
+++ libcxx/trunk/src/condition_variable.cpp
@@ -60,7 +60,7 @@
     nanoseconds d = tp.time_since_epoch();
     if (d > nanoseconds(0x59682F000000E941))
         d = nanoseconds(0x59682F000000E941);
-    timespec ts;
+    __libcpp_timespec_t ts;
     seconds s = duration_cast<seconds>(d);
     typedef decltype(ts.tv_sec) ts_sec;
     _LIBCPP_CONSTEXPR ts_sec ts_sec_max = numeric_limits<ts_sec>::max();


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63328.205949.patch
Type: text/x-patch
Size: 2378 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190621/704ac46f/attachment.bin>


More information about the libcxx-commits mailing list