https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97985

            Bug ID: 97985
           Summary: Simplify <ext/concurrence.h>
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

Most of the <ext/concurrence.h> header is only used in libsupc++/guard.cc and
so doesn't need to be in a public header.

The __gnu_cxx::__mutex type is used in a few places, but they could probably
use std::mutex instead.

The __gnu_cxx::__recursive_mutex and __gnu_cxx::__cond types are not needed
outside of libsupc++/guard.cc so should be removed from the public header.

The exception types __concurrence_broadcast_error and __concurrence_wait_error
are only needed by __cond.

Having four exception types in that header increases the size of the library,
due to the vtables and RTTI. We would probably just have one type that holds a
const char* for the result of what().

Some of these things are mentioned in the docs, so we might want to deprecate
them first, before removing them.

Reply via email to