diff options
author | redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-02 20:22:32 +0000 |
---|---|---|
committer | redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-02 20:22:32 +0000 |
commit | 4854adabc83a4e9bc741a5a8700d49e3c44ad9bd (patch) | |
tree | ad20b1547007e243bfd4112b31a8b839c93d8d75 /libstdc++-v3/include/ext | |
parent | dcd028e121434786998996b4aeb31188b03993a3 (diff) | |
download | ppe42-gcc-4854adabc83a4e9bc741a5a8700d49e3c44ad9bd.tar.gz ppe42-gcc-4854adabc83a4e9bc741a5a8700d49e3c44ad9bd.zip |
libgcc:
PR other/53889
* gthr.h (__gthread_recursive_mutex_destroy): Document new required
function.
* gthr-posix.h (__gthread_recursive_mutex_destroy): Define.
* gthr-single.h (__gthread_recursive_mutex_destroy): Likewise.
* config/gthr-rtems.h (__gthread_recursive_mutex_destroy): Likewise.
* config/gthr-vxworks.h (__gthread_recursive_mutex_destroy): Likewise.
* config/i386/gthr-win32.h (__gthread_recursive_mutex_destroy):
Likewise.
* config/mips/gthr-mipssde.h (__gthread_recursive_mutex_destroy):
Likewise.
* config/pa/gthr-dce.h (__gthread_recursive_mutex_destroy): Likewise.
* config/s390/gthr-tpf.h (__gthread_recursive_mutex_destroy): Likewise.
libstdc++-v3:
PR other/53889
* include/std/mutex (__recursive_mutex_base::~__recursive_mutex_base):
Use __gthread_recursive_mutex_destroy.
(__recursive_mutex_base::_S_destroy): Remove.
(__recursive_mutex_base::_S_destroy_win32): Likewise.
* include/ext/concurrence.h (__recursive_mutex::~__recursive_mutex):
Use __gthread_recursive_mutex_destroy.
(__recursive_mutex::_S_destroy): Remove.
(__recursive_mutex::_S_destroy_win32): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192002 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/ext')
-rw-r--r-- | libstdc++-v3/include/ext/concurrence.h | 39 |
1 files changed, 1 insertions, 38 deletions
diff --git a/libstdc++-v3/include/ext/concurrence.h b/libstdc++-v3/include/ext/concurrence.h index ad028398be1..68c679c6b06 100644 --- a/libstdc++-v3/include/ext/concurrence.h +++ b/libstdc++-v3/include/ext/concurrence.h @@ -219,7 +219,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ~__recursive_mutex() { if (__gthread_active_p()) - _S_destroy(&_M_mutex); + __gthread_recursive_mutex_destroy(&_M_mutex); } #endif @@ -247,43 +247,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __gthread_recursive_mutex_t* gthread_recursive_mutex(void) { return &_M_mutex; } - -#if __GTHREADS && ! defined __GTHREAD_RECURSIVE_MUTEX_INIT - // FIXME: gthreads doesn't define __gthread_recursive_mutex_destroy - // so we need to obtain a __gthread_mutex_t to destroy - private: - template<typename _Mx, typename _Rm> - static void - _S_destroy_win32(_Mx* __mx, _Rm const* __rmx) - { - __mx->counter = __rmx->counter; - __mx->sema = __rmx->sema; - __gthread_mutex_destroy(__mx); - } - - // matches a gthr-win32.h recursive mutex - template<typename _Rm> - static typename __enable_if<(bool)sizeof(&_Rm::sema), void>::__type - _S_destroy(_Rm* __mx) - { - __gthread_mutex_t __tmp; - _S_destroy_win32(&__tmp, __mx); - } - - // matches a recursive mutex with a member 'actual' - template<typename _Rm> - static typename __enable_if<(bool)sizeof(&_Rm::actual), void>::__type - _S_destroy(_Rm* __mx) - { __gthread_mutex_destroy(&__mx->actual); } - - // matches when there's only one mutex type - template<typename _Rm> - static typename - __enable_if<std::__are_same<_Rm, __gthread_mutex_t>::__value, - void>::__type - _S_destroy(_Rm* __mx) - { __gthread_mutex_destroy(__mx); } -#endif }; /// Scoped lock idiom. |