From 3722862e60b5b82c9ac41ad172bbf0e8e8be54ee Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sun, 12 Aug 2012 18:57:53 +0000 Subject: [PATCH] re PR libstdc++/52681 ([C++11] Using std::thread without -pthread crashes without warning) PR libstdc++/52681 * src/c++11/thread.cc (thread::_M_start_thread): Improve error text when threads are not enabled. From-SVN: r190330 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/src/c++11/thread.cc | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index f33aef8cdbd..69303abec17 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2012-08-12 Jonathan Wakely + + PR libstdc++/52681 + * src/c++11/thread.cc (thread::_M_start_thread): Improve error text + when threads are not enabled. + 2012-08-09 Jonathan Wakely * acinclude.m4: Update references to final C++11 standard. diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc index ff034b16143..5c108324141 100644 --- a/libstdc++-v3/src/c++11/thread.cc +++ b/libstdc++-v3/src/c++11/thread.cc @@ -115,7 +115,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION thread::_M_start_thread(__shared_base_type __b) { if (!__gthread_active_p()) +#if __EXCEPTIONS + throw system_error(make_error_code(errc::operation_not_permitted), + "Enable multithreading to use std::thread"); +#else __throw_system_error(int(errc::operation_not_permitted)); +#endif __b->_M_this_ptr = __b; int __e = __gthread_create(&_M_id._M_thread, -- 2.30.2