Index: gcc/libstdc++-v3/include/std/condition_variable |
diff --git a/gcc/libstdc++-v3/include/std/condition_variable b/gcc/libstdc++-v3/include/std/condition_variable |
deleted file mode 100644 |
index 64f2bb7711883ab236823e8eb853b34e7575a0cf..0000000000000000000000000000000000000000 |
--- a/gcc/libstdc++-v3/include/std/condition_variable |
+++ /dev/null |
@@ -1,225 +0,0 @@ |
-// <condition_variable> -*- C++ -*- |
- |
-// Copyright (C) 2008, 2009 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. |
- |
-// Under Section 7 of GPL version 3, you are granted additional |
-// permissions described in the GCC Runtime Library Exception, version |
-// 3.1, as published by the Free Software Foundation. |
- |
-// You should have received a copy of the GNU General Public License and |
-// a copy of the GCC Runtime Library Exception along with this program; |
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
-// <http://www.gnu.org/licenses/>. |
- |
-/** @file condition_variable |
- * This is a Standard C++ Library header. |
- */ |
- |
-#ifndef _GLIBCXX_CONDITION_VARIABLE |
-#define _GLIBCXX_CONDITION_VARIABLE 1 |
- |
-#pragma GCC system_header |
- |
-#ifndef __GXX_EXPERIMENTAL_CXX0X__ |
-# include <c++0x_warning.h> |
-#else |
- |
-#include <chrono> |
-#include <mutex> // unique_lock |
- |
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) |
- |
-namespace std |
-{ |
- /** |
- * @defgroup condition_variables Condition Variables |
- * @ingroup concurrency |
- * |
- * Classes for condition_variable support. |
- * @{ |
- */ |
- |
- /// condition_variable |
- class condition_variable |
- { |
- typedef chrono::system_clock __clock_t; |
- typedef __gthread_cond_t __native_type; |
- __native_type _M_cond; |
- |
- public: |
- typedef __native_type* native_handle_type; |
- |
- condition_variable(); |
- ~condition_variable(); |
- |
- condition_variable(const condition_variable&) = delete; |
- condition_variable& operator=(const condition_variable&) = delete; |
- |
- void |
- notify_one(); |
- |
- void |
- notify_all(); |
- |
- void |
- wait(unique_lock<mutex>& __lock); |
- |
- template<typename _Predicate> |
- void |
- wait(unique_lock<mutex>& __lock, _Predicate __p) |
- { |
- while (!__p()) |
- wait(__lock); |
- } |
- |
- template<typename _Duration> |
- bool |
- wait_until(unique_lock<mutex>& __lock, |
- const chrono::time_point<__clock_t, _Duration>& __atime) |
- { return __wait_until_impl(__lock, __atime); } |
- |
- template<typename _Clock, typename _Duration> |
- bool |
- wait_until(unique_lock<mutex>& __lock, |
- const chrono::time_point<_Clock, _Duration>& __atime) |
- { |
- // DR 887 - Sync unknown clock to known clock. |
- typename _Clock::time_point __c_entry = _Clock::now(); |
- __clock_t::time_point __s_entry = __clock_t::now(); |
- chrono::nanoseconds __delta = __atime - __c_entry; |
- __clock_t::time_point __s_atime = __s_entry + __delta; |
- |
- return __wait_until_impl(__lock, __s_atime); |
- } |
- |
- template<typename _Clock, typename _Duration, typename _Predicate> |
- bool |
- wait_until(unique_lock<mutex>& __lock, |
- const chrono::time_point<_Clock, _Duration>& __atime, |
- _Predicate __p) |
- { |
- while (!__p()) |
- if (!wait_until(__lock, __atime)) |
- return __p(); |
- |
- return true; |
- } |
- |
- template<typename _Rep, typename _Period> |
- bool |
- wait_for(unique_lock<mutex>& __lock, |
- const chrono::duration<_Rep, _Period>& __rtime) |
- { return wait_until(__lock, __clock_t::now() + __rtime); } |
- |
- template<typename _Rep, typename _Period, typename _Predicate> |
- bool |
- wait_for(unique_lock<mutex>& __lock, |
- const chrono::duration<_Rep, _Period>& __rtime, |
- _Predicate __p) |
- { return wait_until(__lock, __clock_t::now() + __rtime, std::move(__p)); } |
- |
- native_handle_type |
- native_handle() |
- { return &_M_cond; } |
- |
- private: |
- template<typename _Clock, typename _Duration> |
- bool |
- __wait_until_impl(unique_lock<mutex>& __lock, |
- const chrono::time_point<_Clock, _Duration>& __atime) |
- { |
- chrono::time_point<__clock_t, chrono::seconds> __s = |
- chrono::time_point_cast<chrono::seconds>(__atime); |
- |
- chrono::nanoseconds __ns = |
- chrono::duration_cast<chrono::nanoseconds>(__atime - __s); |
- |
- __gthread_time_t __ts = |
- { |
- static_cast<std::time_t>(__s.time_since_epoch().count()), |
- static_cast<long>(__ns.count()) |
- }; |
- |
- __gthread_cond_timedwait(&_M_cond, __lock.mutex()->native_handle(), |
- &__ts); |
- |
- return _Clock::now() < __atime; |
- } |
- }; |
- |
- /// condition_variable_any |
- // Like above, only mutex may not have try_lock. |
- class condition_variable_any |
- { |
- typedef __gthread_cond_t __native_type; |
- __native_type _M_cond; |
- |
- public: |
- typedef __native_type* native_handle_type; |
- |
- condition_variable_any(); |
- ~condition_variable_any(); |
- |
- condition_variable_any(const condition_variable_any&) = delete; |
- condition_variable_any& operator=(const condition_variable_any&) = delete; |
- |
- void |
- notify_one(); |
- |
- void |
- notify_all(); |
- |
- template<typename _Lock> |
- void |
- wait(_Lock& __lock); |
- |
- template<typename _Lock, typename _Predicate> |
- void |
- wait(_Lock& __lock, _Predicate __p); |
- |
- template<typename _Lock, typename _Clock, typename _Duration> |
- bool |
- wait_until(_Lock& __lock, |
- const chrono::time_point<_Clock, _Duration>& __atime); |
- |
- template<typename _Lock, typename _Clock, |
- typename _Duration, typename _Predicate> |
- bool |
- wait_until(_Lock& __lock, |
- const chrono::time_point<_Clock, _Duration>& __atime, |
- _Predicate __p); |
- |
- template<typename _Lock, typename _Rep, typename _Period> |
- bool |
- wait_for(_Lock& __lock, const chrono::duration<_Rep, _Period>& __rtime); |
- |
- template<typename _Lock, typename _Rep, |
- typename _Period, typename _Predicate> |
- bool |
- wait_for(_Lock& __lock, |
- const chrono::duration<_Rep, _Period>& __rtime, _Predicate __p); |
- |
- native_handle_type |
- native_handle() |
- { return &_M_cond; } |
- }; |
- |
- // @} group condition_variables |
-} |
- |
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 |
- |
-#endif // __GXX_EXPERIMENTAL_CXX0X__ |
- |
-#endif // _GLIBCXX_CONDITION_VARIABLE |