Author: ericwf Date: Sat Jan 14 14:19:00 2017 New Revision: 292027 URL: http://llvm.org/viewvc/llvm-project?rev=292027&view=rev Log: Attempt two at fixing threading on Windows
Reviewers: compnerd Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28735 Modified: libcxx/trunk/include/__threading_support Modified: libcxx/trunk/include/__threading_support URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__threading_support?rev=292027&r1=292026&r2=292027&view=diff ============================================================================== --- libcxx/trunk/include/__threading_support (original) +++ libcxx/trunk/include/__threading_support Sat Jan 14 14:19:00 2017 @@ -495,7 +495,7 @@ struct __libcpp_beginthreadex_thunk_data void *__arg; }; -static inline _LIBCPP_ALWAYS_INLINE DWORD WINAPI +static inline _LIBCPP_ALWAYS_INLINE unsigned WINAPI __libcpp_beginthreadex_thunk(void *__raw_data) { auto *__data = @@ -503,7 +503,7 @@ __libcpp_beginthreadex_thunk(void *__raw auto *__func = __data->__func; void *__arg = __data->__arg; delete __data; - return static_cast<DWORD>(reinterpret_cast<uintptr_t>(__func(__arg))); + return static_cast<unsigned>(reinterpret_cast<uintptr_t>(__func(__arg))); } int __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *), @@ -513,13 +513,10 @@ int __libcpp_thread_create(__libcpp_thre __data->__func = __func; __data->__arg = __arg; - *__t = CreateThread( - nullptr, // default security attributes - 0, // default stack size - __libcpp_beginthreadex_thunk, __data, - 0, // default creation flags - nullptr // output for thread ID - ); + *__t = reinterpret_cast<HANDLE>(_beginthreadex(nullptr, 0, + __libcpp_beginthreadex_thunk, + __data, 0, nullptr)); + if (*__t) return 0; return GetLastError(); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits