[libcxx] r192539 - LWG issue 2143: ios_base::xalloc should be thread-safe
Marshall Clow
mclow.lists at gmail.com
Sat Oct 12 12:13:52 PDT 2013
Author: marshall
Date: Sat Oct 12 14:13:52 2013
New Revision: 192539
URL: http://llvm.org/viewvc/llvm-project?rev=192539&view=rev
Log:
LWG issue 2143: ios_base::xalloc should be thread-safe
Modified:
libcxx/trunk/include/ios
libcxx/trunk/src/ios.cpp
Modified: libcxx/trunk/include/ios
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/ios?rev=192539&r1=192538&r2=192539&view=diff
==============================================================================
--- libcxx/trunk/include/ios (original)
+++ libcxx/trunk/include/ios Sat Oct 12 14:13:52 2013
@@ -216,6 +216,10 @@ storage-class-specifier const error_cate
#include <__locale>
#include <system_error>
+#if __has_feature(cxx_atomic)
+#include <atomic> // for __xindex_
+#endif
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif
@@ -363,7 +367,11 @@ private:
int* __index_;
size_t __event_size_;
size_t __event_cap_;
+#if __has_feature(cxx_atomic)
+ static atomic<int> __xindex_;
+#else
static int __xindex_;
+#endif
long* __iarray_;
size_t __iarray_size_;
size_t __iarray_cap_;
Modified: libcxx/trunk/src/ios.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/ios.cpp?rev=192539&r1=192538&r2=192539&view=diff
==============================================================================
--- libcxx/trunk/src/ios.cpp (original)
+++ libcxx/trunk/src/ios.cpp Sat Oct 12 14:13:52 2013
@@ -149,8 +149,11 @@ ios_base::getloc() const
}
// xalloc
-
+#if __has_feature(cxx_atomic)
+atomic<int> ios_base::__xindex_ = ATOMIC_VAR_INIT(0);
+#else
int ios_base::__xindex_ = 0;
+#endif
int
ios_base::xalloc()
More information about the cfe-commits
mailing list