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 # include @@ -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(__ns); - timespec __ts; + __libcpp_timespec_t __ts; typedef decltype(__ts.tv_sec) ts_sec; _LIBCPP_CONSTEXPR ts_sec __ts_sec_max = numeric_limits::max(); 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(d); typedef decltype(ts.tv_sec) ts_sec; _LIBCPP_CONSTEXPR ts_sec ts_sec_max = numeric_limits::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;