OSDN Git Service

2009-05-13 Jonathan Wakely <jwakely.gcc@gmail.com>
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 May 2009 10:09:02 +0000 (10:09 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 May 2009 10:09:02 +0000 (10:09 +0000)
* include/std/mutex: Move std::lock_error to ...
* src/compatibility.cc: Here.
* src/mutex.cc: Likewise.
* testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Add checks
for lock types and remove std::lock_error check.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147609 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/mutex
libstdc++-v3/src/compatibility.cc
libstdc++-v3/src/mutex.cc
libstdc++-v3/testsuite/30_threads/headers/mutex/types_std_c++0x.cc

index 44db9d8..ea4b256 100644 (file)
@@ -1,3 +1,11 @@
+2009-05-13  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * include/std/mutex: Move std::lock_error to ...
+       * src/compatibility.cc: Here.
+       * src/mutex.cc: Likewise.
+       * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Add checks
+       for lock types and remove std::lock_error check.
+
 2009-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * testsuite/21_strings/basic_string/40160.cc: Remove spurious
index c090608..f313ccb 100644 (file)
@@ -386,18 +386,6 @@ namespace std
   extern const try_to_lock_t   try_to_lock;
   extern const adopt_lock_t    adopt_lock;
 
-  /** 
-   *  @brief Thrown to indicate errors with lock operations.
-   *
-   *  @ingroup exceptions
-   */
-  class lock_error : public exception
-  {
-  public:
-    virtual const char*
-    _GLIBCXX_CONST what() const throw();
-  };
-
   /// @brief  Scoped lock idiom.
   // Acquire the mutex here with a constructor call, then release with
   // the destructor call in accordance with RAII style.
index 8889749..6b3c19b 100644 (file)
@@ -513,6 +513,23 @@ extern __attribute__((used, weak)) const void * const _ZTIPKe[4]
       (void *) _ZTSPKe, (void *) 1L, (void *) _ZTIe };
 #endif // _GLIBCXX_LONG_DOUBLE_COMPAT
 
+// gcc-4.4.0
+// <mutex> exported std::lock_error
+#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+namespace std
+{
+  class lock_error : public exception
+  {
+  public:
+    virtual const char*
+    _GLIBCXX_CONST what() const throw();
+  };
+
+  const char*
+  lock_error::what() const throw()
+  { return "std::lock_error"; }
+}
+#endif
 
 
 #ifdef _GLIBCXX_SYMVER_DARWIN
index fcc1eb9..74a82c8 100644 (file)
@@ -43,10 +43,6 @@ namespace std
   const try_to_lock_t try_to_lock = try_to_lock_t();
   const adopt_lock_t adopt_lock = adopt_lock_t();
 
-  const char*
-  lock_error::what() const throw()
-  { return "std::lock_error"; }
-
 #ifdef _GLIBCXX_HAVE_TLS
   __thread void* __once_callable;
   __thread void (*__once_call)();
index 5ce994f..604569b 100644 (file)
@@ -35,7 +35,8 @@ void test01()
   using std::try_to_lock;
   using std::adopt_lock;
 
-  typedef std::lock_error error_t;
+  typedef std::lock_guard<mutext_t> lock_t;
+  typedef std::unique_lock<rmutext_t> ulock_t;
 
   typedef std::once_flag once_t;
 }