This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
This is something I've been meaning to change for years, see http://gcc.gnu.org/ml/libstdc++/2007-10/msg00180.html for a prior post. Currently __shared_ptr<T, _S_single> specializations still dispatch through __gnu_cxx::__exchange_and_add_dispatch for ref-count updates. The attached patch means the _S_single policy is always non-atomic, so that you can get a faster (but not threadsafe!) smart pointer with: template<typename T> using shared_ptr_unsynchronized = std::__shared_ptr<T, std::_S_single>; This is something I've needed and I've seen others ask about it too e.g. http://stackoverflow.com/q/15129263/981959 http://stackoverflow.com/q/9792668/981959 2013-11-18 Jonathan Wakely <jwakely.gcc@gmail.com> * include/bits/shared_ptr_base.h (_Sp_counted_base<_S_single>): Use non-atomic operations. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line number. * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise. Tested x86_64-linux, with --enable-threads and --disable-threads, committed to trunk.
Attachment:
patch.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |