aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely.gcc@gmail.com>2013-03-16 19:45:53 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2013-03-16 19:45:53 +0000
commit3442f18d26ec2224d3aeef72cba25540beaa68e8 (patch)
tree5df54334f014ba2896986b5a10209b3ee2345a10 /libstdc++-v3
parentb722c9a2a2bb01599706d51554128caa96709a8b (diff)
downloadgcc-3442f18d26ec2224d3aeef72cba25540beaa68e8.zip
gcc-3442f18d26ec2224d3aeef72cba25540beaa68e8.tar.gz
gcc-3442f18d26ec2224d3aeef72cba25540beaa68e8.tar.bz2
re PR libstdc++/56002 ([C++11] allow generic locks to be used without requiring plattform support for threads)
PR libstdc++/56002 * include/std/mutex (lock_guard, unique_lock, lock): Define without depending on _GLIBCXX_HAS_GTHREADS. * testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets. From-SVN: r196706
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/include/std/mutex9
-rw-r--r--libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc7
3 files changed, 15 insertions, 8 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e8211a3..8e4c99c 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,12 @@
2013-03-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+ PR libstdc++/56002
+ * include/std/mutex (lock_guard, unique_lock, lock): Define without
+ depending on _GLIBCXX_HAS_GTHREADS.
+ * testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets.
+
+2013-03-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
PR libstdc++/56492
* include/std/future (__future_base::_Result): Add result_type
typedef.
diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex
index e327f28..67f3418 100644
--- a/libstdc++-v3/include/std/mutex
+++ b/libstdc++-v3/include/std/mutex
@@ -45,12 +45,13 @@
#include <bits/gthr.h>
#include <bits/move.h> // for std::swap
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
+#ifdef _GLIBCXX_HAS_GTHREADS
// Common base class for std::mutex and std::timed_mutex
class __mutex_base
{
@@ -384,6 +385,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
};
#endif
+#endif // _GLIBCXX_HAS_GTHREADS
/// Do not acquire ownership of the mutex.
struct defer_lock_t { };
@@ -719,6 +721,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
}
+#ifdef _GLIBCXX_HAS_GTHREADS
/// once_flag
struct once_flag
{
@@ -790,12 +793,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
if (__e)
__throw_system_error(__e);
}
+#endif // _GLIBCXX_HAS_GTHREADS
// @} group mutexes
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
+#endif // _GLIBCXX_USE_C99_STDINT_TR1
#endif // C++11
diff --git a/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc b/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc
index d92e6ba..cd6d914 100644
--- a/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc
+++ b/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc
@@ -1,9 +1,6 @@
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* powerpc-ibm-aix* } }
-// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* powerpc-ibm-aix* } }
-// { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } }
-// { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } }
+// { dg-do run }
+// { dg-options " -std=gnu++11 " }
// { dg-require-cstdint "" }
-// { dg-require-gthreads "" }
// Copyright (C) 2010-2013 Free Software Foundation, Inc.
//