This are the patches as applied Built and tested x86_64-linux.
2014-02-20 Ed Smith-Rowland <3dw...@verizon.net> Rename shared_mutex to shared_timed_mutex per C++14 acceptance of N3891. * include/std/shared_mutex: Rename shared_mutex to shared_timed_mutex. * testsuite/30_threads/shared_lock/locking/2.cc: Ditto. * testsuite/30_threads/shared_lock/locking/4.cc: Ditto. * testsuite/30_threads/shared_lock/locking/1.cc: Ditto. * testsuite/30_threads/shared_lock/locking/3.cc: Ditto. * testsuite/30_threads/shared_lock/requirements/ explicit_instantiation.cc: Ditto. * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Ditto. * testsuite/30_threads/shared_lock/cons/2.cc: Ditto. * testsuite/30_threads/shared_lock/cons/4.cc: Ditto. * testsuite/30_threads/shared_lock/cons/1.cc: Ditto. * testsuite/30_threads/shared_lock/cons/6.cc: Ditto. * testsuite/30_threads/shared_lock/cons/3.cc: Ditto. * testsuite/30_threads/shared_lock/cons/5.cc: Ditto. * testsuite/30_threads/shared_lock/modifiers/2.cc: Ditto. * testsuite/30_threads/shared_lock/modifiers/1.cc: Ditto. * testsuite/30_threads/shared_mutex/requirements/ standard_layout.cc: Ditto. * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Ditto. * testsuite/30_threads/shared_mutex/cons/1.cc: Ditto. * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Ditto. * testsuite/30_threads/shared_mutex/try_lock/2.cc: Ditto. * testsuite/30_threads/shared_mutex/try_lock/1.cc: Ditto.
2014-02-21 Ed Smith-Rowland <3dw...@verizon.net> Rename testsuite directory shared_mutex to shared_timed_mutex for consistency. * testsuite/30_threads/shared_mutex: Moved to... * testsuite/30_threads/shared_timed_mutex: ...here
Index: include/std/shared_mutex =================================================================== --- include/std/shared_mutex (revision 207061) +++ include/std/shared_mutex (working copy) @@ -52,8 +52,8 @@ */ #if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) - /// shared_mutex - class shared_mutex + /// shared_timed_mutex + class shared_timed_mutex { #if _GTHREAD_USE_MUTEX_TIMEDLOCK struct _Mutex : mutex, __timed_mutex_impl<_Mutex> @@ -84,15 +84,15 @@ static constexpr unsigned _M_n_readers = ~_S_write_entered; public: - shared_mutex() : _M_state(0) {} + shared_timed_mutex() : _M_state(0) {} - ~shared_mutex() + ~shared_timed_mutex() { _GLIBCXX_DEBUG_ASSERT( _M_state == 0 ); } - shared_mutex(const shared_mutex&) = delete; - shared_mutex& operator=(const shared_mutex&) = delete; + shared_timed_mutex(const shared_timed_mutex&) = delete; + shared_timed_mutex& operator=(const shared_timed_mutex&) = delete; // Exclusive ownership Index: testsuite/30_threads/shared_lock/locking/2.cc =================================================================== --- testsuite/30_threads/shared_lock/locking/2.cc (revision 205961) +++ testsuite/30_threads/shared_lock/locking/2.cc (working copy) @@ -30,7 +30,7 @@ void test01() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try @@ -66,7 +66,7 @@ void test02() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try Index: testsuite/30_threads/shared_lock/locking/4.cc =================================================================== --- testsuite/30_threads/shared_lock/locking/4.cc (revision 205961) +++ testsuite/30_threads/shared_lock/locking/4.cc (working copy) @@ -31,7 +31,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; typedef std::chrono::system_clock clock_type; Index: testsuite/30_threads/shared_lock/locking/1.cc =================================================================== --- testsuite/30_threads/shared_lock/locking/1.cc (revision 205961) +++ testsuite/30_threads/shared_lock/locking/1.cc (working copy) @@ -30,7 +30,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try Index: testsuite/30_threads/shared_lock/locking/3.cc =================================================================== --- testsuite/30_threads/shared_lock/locking/3.cc (revision 205961) +++ testsuite/30_threads/shared_lock/locking/3.cc (working copy) @@ -31,7 +31,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try Index: testsuite/30_threads/shared_lock/requirements/explicit_instantiation.cc =================================================================== --- testsuite/30_threads/shared_lock/requirements/explicit_instantiation.cc (revision 205961) +++ testsuite/30_threads/shared_lock/requirements/explicit_instantiation.cc (working copy) @@ -27,5 +27,5 @@ namespace std { - template class shared_lock<shared_mutex>; + template class shared_lock<shared_timed_mutex>; } Index: testsuite/30_threads/shared_lock/requirements/typedefs.cc =================================================================== --- testsuite/30_threads/shared_lock/requirements/typedefs.cc (revision 205961) +++ testsuite/30_threads/shared_lock/requirements/typedefs.cc (working copy) @@ -28,6 +28,6 @@ void test01() { // Check for required typedefs - typedef std::shared_lock<std::shared_mutex> test_type; + typedef std::shared_lock<std::shared_timed_mutex> test_type; typedef test_type::mutex_type mutex_type; } Index: testsuite/30_threads/shared_lock/cons/2.cc =================================================================== --- testsuite/30_threads/shared_lock/cons/2.cc (revision 205961) +++ testsuite/30_threads/shared_lock/cons/2.cc (working copy) @@ -30,7 +30,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try Index: testsuite/30_threads/shared_lock/cons/4.cc =================================================================== --- testsuite/30_threads/shared_lock/cons/4.cc (revision 205961) +++ testsuite/30_threads/shared_lock/cons/4.cc (working copy) @@ -30,7 +30,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try Index: testsuite/30_threads/shared_lock/cons/1.cc =================================================================== --- testsuite/30_threads/shared_lock/cons/1.cc (revision 205961) +++ testsuite/30_threads/shared_lock/cons/1.cc (working copy) @@ -30,7 +30,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try Index: testsuite/30_threads/shared_lock/cons/6.cc =================================================================== --- testsuite/30_threads/shared_lock/cons/6.cc (revision 205961) +++ testsuite/30_threads/shared_lock/cons/6.cc (working copy) @@ -31,7 +31,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; typedef std::chrono::system_clock clock_type; Index: testsuite/30_threads/shared_lock/cons/3.cc =================================================================== --- testsuite/30_threads/shared_lock/cons/3.cc (revision 205961) +++ testsuite/30_threads/shared_lock/cons/3.cc (working copy) @@ -30,7 +30,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try Index: testsuite/30_threads/shared_lock/cons/5.cc =================================================================== --- testsuite/30_threads/shared_lock/cons/5.cc (revision 205961) +++ testsuite/30_threads/shared_lock/cons/5.cc (working copy) @@ -31,7 +31,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; typedef std::chrono::system_clock clock_type; Index: testsuite/30_threads/shared_lock/modifiers/2.cc =================================================================== --- testsuite/30_threads/shared_lock/modifiers/2.cc (revision 205961) +++ testsuite/30_threads/shared_lock/modifiers/2.cc (working copy) @@ -30,7 +30,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try Index: testsuite/30_threads/shared_lock/modifiers/1.cc =================================================================== --- testsuite/30_threads/shared_lock/modifiers/1.cc (revision 205961) +++ testsuite/30_threads/shared_lock/modifiers/1.cc (working copy) @@ -30,7 +30,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; typedef std::shared_lock<mutex_type> lock_type; try Index: testsuite/30_threads/shared_mutex/requirements/standard_layout.cc =================================================================== --- testsuite/30_threads/shared_mutex/requirements/standard_layout.cc (revision 205961) +++ testsuite/30_threads/shared_mutex/requirements/standard_layout.cc (working copy) @@ -27,5 +27,5 @@ void test01() { __gnu_test::standard_layout test; - test.operator()<std::shared_mutex>(); + test.operator()<std::shared_timed_mutex>(); } Index: testsuite/30_threads/shared_mutex/cons/copy_neg.cc =================================================================== --- testsuite/30_threads/shared_mutex/cons/copy_neg.cc (revision 205961) +++ testsuite/30_threads/shared_mutex/cons/copy_neg.cc (working copy) @@ -26,7 +26,7 @@ void test01() { // assign - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; mutex_type m1; mutex_type m2(m1); // { dg-error "deleted" } } Index: testsuite/30_threads/shared_mutex/cons/1.cc =================================================================== --- testsuite/30_threads/shared_mutex/cons/1.cc (revision 205961) +++ testsuite/30_threads/shared_mutex/cons/1.cc (working copy) @@ -30,7 +30,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; try { Index: testsuite/30_threads/shared_mutex/cons/assign_neg.cc =================================================================== --- testsuite/30_threads/shared_mutex/cons/assign_neg.cc (revision 205961) +++ testsuite/30_threads/shared_mutex/cons/assign_neg.cc (working copy) @@ -26,7 +26,7 @@ void test01() { // assign - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; mutex_type m1; mutex_type m2; m1 = m2; // { dg-error "deleted" } Index: testsuite/30_threads/shared_mutex/try_lock/2.cc =================================================================== --- testsuite/30_threads/shared_mutex/try_lock/2.cc (revision 205961) +++ testsuite/30_threads/shared_mutex/try_lock/2.cc (working copy) @@ -31,7 +31,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; try { Index: testsuite/30_threads/shared_mutex/try_lock/1.cc =================================================================== --- testsuite/30_threads/shared_mutex/try_lock/1.cc (revision 205961) +++ testsuite/30_threads/shared_mutex/try_lock/1.cc (working copy) @@ -30,7 +30,7 @@ int main() { bool test __attribute__((unused)) = true; - typedef std::shared_mutex mutex_type; + typedef std::shared_timed_mutex mutex_type; try {
Index: testsuite/30_threads/shared_mutex/cons/1.cc =================================================================== --- testsuite/30_threads/shared_mutex/cons/1.cc (revision 207940) +++ testsuite/30_threads/shared_mutex/cons/1.cc (working copy) @@ -1,49 +0,0 @@ -// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* powerpc-ibm-aix* } } -// { dg-options " -std=gnu++1y -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* powerpc-ibm-aix* } } -// { dg-options " -std=gnu++1y -pthreads" { target *-*-solaris* } } -// { dg-options " -std=gnu++1y " { target *-*-cygwin *-*-darwin* } } -// { dg-require-cstdint "" } -// { dg-require-gthreads "" } - -// Copyright (C) 2013-2014 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - - -#include <shared_mutex> -#include <system_error> -#include <testsuite_hooks.h> - -int main() -{ - bool test __attribute__((unused)) = true; - typedef std::shared_timed_mutex mutex_type; - - try - { - mutex_type m1; - } - catch (const std::system_error& e) - { - VERIFY( false ); - } - catch (...) - { - VERIFY( false ); - } - - return 0; -} Index: testsuite/30_threads/shared_mutex/cons/assign_neg.cc =================================================================== --- testsuite/30_threads/shared_mutex/cons/assign_neg.cc (revision 207940) +++ testsuite/30_threads/shared_mutex/cons/assign_neg.cc (working copy) @@ -1,35 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++1y" } -// { dg-require-cstdint "" } -// { dg-require-gthreads "" } - -// Copyright (C) 2008-2014 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - - -#include <shared_mutex> - -void test01() -{ - // assign - typedef std::shared_timed_mutex mutex_type; - mutex_type m1; - mutex_type m2; - m1 = m2; // { dg-error "deleted" } -} - -// { dg-prune-output "include" } Index: testsuite/30_threads/shared_mutex/cons/copy_neg.cc =================================================================== --- testsuite/30_threads/shared_mutex/cons/copy_neg.cc (revision 207940) +++ testsuite/30_threads/shared_mutex/cons/copy_neg.cc (working copy) @@ -1,34 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++1y" } -// { dg-require-cstdint "" } -// { dg-require-gthreads "" } - -// Copyright (C) 2013-2014 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - - -#include <shared_mutex> - -void test01() -{ - // assign - typedef std::shared_timed_mutex mutex_type; - mutex_type m1; - mutex_type m2(m1); // { dg-error "deleted" } -} - -// { dg-prune-output "include" } Index: testsuite/30_threads/shared_mutex/requirements/standard_layout.cc =================================================================== --- testsuite/30_threads/shared_mutex/requirements/standard_layout.cc (revision 207940) +++ testsuite/30_threads/shared_mutex/requirements/standard_layout.cc (working copy) @@ -1,31 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++1y" } -// { dg-require-cstdint "" } -// { dg-require-gthreads "" } - -// Copyright (C) 2013-2014 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - - -#include <shared_mutex> -#include <testsuite_common_types.h> - -void test01() -{ - __gnu_test::standard_layout test; - test.operator()<std::shared_timed_mutex>(); -} Index: testsuite/30_threads/shared_mutex/try_lock/1.cc =================================================================== --- testsuite/30_threads/shared_mutex/try_lock/1.cc (revision 207940) +++ testsuite/30_threads/shared_mutex/try_lock/1.cc (working copy) @@ -1,52 +0,0 @@ -// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* powerpc-ibm-aix* } } -// { dg-options " -std=gnu++1y -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* powerpc-ibm-aix* } } -// { dg-options " -std=gnu++1y -pthreads" { target *-*-solaris* } } -// { dg-options " -std=gnu++1y " { target *-*-cygwin *-*-darwin* } } -// { dg-require-cstdint "" } -// { dg-require-gthreads "" } - -// Copyright (C) 2013-2014 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - - -#include <shared_mutex> -#include <system_error> -#include <testsuite_hooks.h> - -int main() -{ - bool test __attribute__((unused)) = true; - typedef std::shared_timed_mutex mutex_type; - - try - { - mutex_type m; - bool b = m.try_lock(); - VERIFY( b ); - m.unlock(); - } - catch (const std::system_error& e) - { - VERIFY( false ); - } - catch (...) - { - VERIFY( false ); - } - - return 0; -} Index: testsuite/30_threads/shared_mutex/try_lock/2.cc =================================================================== --- testsuite/30_threads/shared_mutex/try_lock/2.cc (revision 207940) +++ testsuite/30_threads/shared_mutex/try_lock/2.cc (working copy) @@ -1,67 +0,0 @@ -// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* powerpc-ibm-aix* } } -// { dg-options " -std=gnu++1y -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* powerpc-ibm-aix* } } -// { dg-options " -std=gnu++1y -pthreads" { target *-*-solaris* } } -// { dg-options " -std=gnu++1y " { target *-*-cygwin *-*-darwin* } } -// { dg-require-cstdint "" } -// { dg-require-gthreads "" } - -// Copyright (C) 2013-2014 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - - -#include <shared_mutex> -#include <thread> -#include <system_error> -#include <testsuite_hooks.h> - -int main() -{ - bool test __attribute__((unused)) = true; - typedef std::shared_timed_mutex mutex_type; - - try - { - mutex_type m; - m.lock(); - bool b; - - std::thread t([&] { - try - { - b = m.try_lock(); - } - catch (const std::system_error& e) - { - VERIFY( false ); - } - }); - t.join(); - VERIFY( !b ); - - m.unlock(); - } - catch (const std::system_error& e) - { - VERIFY( false ); - } - catch (...) - { - VERIFY( false ); - } - - return 0; -}