In our GNU version rather puzzling solutions appear like: void release() // nothrow { if (__gnu_cxx::__exchange_and_add(&_M_use_count, -1) == 1) { dispose(); __glibcxx_mutex_lock(_M_mutex); __glibcxx_mutex_unlock(_M_mutex); weak_release(); } }
with empty critical regions, and what else. Document that, possibly mentioning the current weaknesses both from the point of view of correctness and performance and mentioning alternate solutions. -- Summary: Document boost_shared_ptr vs concurrency Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: documentation Severity: enhancement Priority: P2 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pcarlini at suse dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24347