diff options
author | redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-29 12:54:05 +0000 |
---|---|---|
committer | redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-29 12:54:05 +0000 |
commit | 480f3486712dc685b5f56fbd91bad5cf312df611 (patch) | |
tree | 1c41b68da533870ce3a44a9dd4a934252561bfbf /libstdc++-v3/config | |
parent | b09ec79ce28650d7b14089ac48312948dee38a48 (diff) | |
download | gcc-480f3486712dc685b5f56fbd91bad5cf312df611.tar.gz |
Reduce space and time overhead of std::thread
PR libstdc++/65393
* config/abi/pre/gnu.ver: Export new symbols.
* include/std/thread (thread::_State, thread::_State_impl): New types.
(thread::_M_start_thread): Add overload taking unique_ptr<_State>.
(thread::_M_make_routine): Remove.
(thread::_S_make_state): Add.
(thread::_Impl_base, thread::_Impl, thread::_M_start_thread)
[_GLIBCXX_THREAD_ABI_COMPAT] Only declare conditionally.
* src/c++11/thread.cc (execute_native_thread_routine): Rename to
execute_native_thread_routine_compat and re-define to use _State.
(thread::_State::~_State()): Define.
(thread::_M_make_thread): Define new overload.
(thread::_M_make_thread) [_GLIBCXX_THREAD_ABI_COMPAT]: Only define old
overloads conditionally.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228242 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/config')
-rw-r--r-- | libstdc++-v3/config/abi/pre/gnu.ver | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index d42cd37af66..08d9bc6c50e 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -1870,6 +1870,11 @@ GLIBCXX_3.4.22 { # std::uncaught_exceptions() _ZSt19uncaught_exceptionsv; + # std::thread::_State::~_State() + _ZT[ISV]NSt6thread6_StateE; + _ZNSt6thread6_StateD[012]Ev; + _ZNSt6thread15_M_start_threadESt10unique_ptrINS_6_StateESt14default_deleteIS1_EEPFvvE; + } GLIBCXX_3.4.21; # Symbols in the support library (libsupc++) have their own tag. |