[committed 2/2] libstdc++: Only include <condition_variable> in <shared_mutex> if needed

Jonathan Wakely jwakely@redhat.com
Thu Oct 22 18:00:41 GMT 2020


The <condition_variable> header is not small, so <shared_mutex> should
not include it unless it actually needs std::condition_variable, which
is only the case when we don't have pthread_rwlock_t and the POSIX
Timers option.

The <shared_mutex> header would be even smaller if we had a header for
std::condition_variable (separate from std::condition_variable_any).
That's already planned for a future change.

And <memory_resource> would be even smaller if it was possible to get
std::shared_mutex without std::shared_timed_mutex (which depends on
<chrono>). For that to be effective, the synchronized_pool_resource
would have to create its own simpler version of std::shared_lock without
the timed waiting functions. I have no plans to do that.

libstdc++-v3/ChangeLog:

         * include/std/shared_mutex: Only include <condition_variable>
         when pthread_rwlock_t and POSIX timers are not available.
         (__cpp_lib_shared_mutex, __cpp_lib_shared_timed_mutex): Change
         value to be type 'long'.
         * include/std/version (__cpp_lib_shared_mutex)
         (__cpp_lib_shared_timed_mutex): Likewise.


Tested powerpc64le-linux. Committed to trunk.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 3682 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20201022/8d8cb9b3/attachment.bin>


More information about the Libstdc++ mailing list