diff options
Diffstat (limited to 'gcc-4.9/libstdc++-v3/include/std/condition_variable')
-rw-r--r-- | gcc-4.9/libstdc++-v3/include/std/condition_variable | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc-4.9/libstdc++-v3/include/std/condition_variable b/gcc-4.9/libstdc++-v3/include/std/condition_variable index fc111dd3d..921cb837d 100644 --- a/gcc-4.9/libstdc++-v3/include/std/condition_variable +++ b/gcc-4.9/libstdc++-v3/include/std/condition_variable @@ -189,7 +189,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ~_Unlock() noexcept(false) { if (uncaught_exception()) - __try { _M_lock.lock(); } __catch(...) { } + { + __try + { _M_lock.lock(); } + __catch(const __cxxabiv1::__forced_unwind&) + { __throw_exception_again; } + __catch(...) + { } + } else _M_lock.lock(); } |