system_error: provide a thread safe stringification for Windows
Provide a strerror_r replacement for Windows. This is needed to build libc++ for Windows with threading. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290851 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -65,8 +65,16 @@ constexpr size_t strerror_buff_size = 1024;
|
||||
|
||||
string do_strerror_r(int ev);
|
||||
|
||||
#if defined(__linux__) && !defined(_LIBCPP_HAS_MUSL_LIBC) \
|
||||
&& (!defined(__ANDROID__) || __ANDROID_API__ >= 23)
|
||||
#if defined(_WIN32)
|
||||
string do_strerror_r(int ev) {
|
||||
char buffer[strerror_buff_size];
|
||||
if (::strerror_s(buffer, strerror_buff_size, ev) == 0)
|
||||
return string(buffer);
|
||||
std::snprintf(buffer, strerror_buff_size, "unknown error %d", ev);
|
||||
return string(buffer);
|
||||
}
|
||||
#elif defined(__linux__) && !defined(_LIBCPP_HAS_MUSL_LIBC) && \
|
||||
(!defined(__ANDROID__) || __ANDROID_API__ >= 23)
|
||||
// GNU Extended version
|
||||
string do_strerror_r(int ev) {
|
||||
char buffer[strerror_buff_size];
|
||||
|
||||
Reference in New Issue
Block a user