Skip to content

Commit 4a8329c

Browse files
authored
[libc++] Granularize <mutex> includes (#117068)
1 parent 08e6566 commit 4a8329c

File tree

6 files changed

+18
-11
lines changed

6 files changed

+18
-11
lines changed

libcxx/include/__memory_resource/synchronized_pool_resource.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
#define _LIBCPP___MEMORY_RESOURCE_SYNCHRONIZED_POOL_RESOURCE_H
1111

1212
#include <__config>
13+
#include <__cstddef/size_t.h>
1314
#include <__memory_resource/memory_resource.h>
1415
#include <__memory_resource/pool_options.h>
1516
#include <__memory_resource/unsynchronized_pool_resource.h>
16-
#include <mutex>
17+
#include <__mutex/mutex.h>
18+
#include <__mutex/unique_lock.h>
1719

1820
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
1921
# pragma GCC system_header

libcxx/include/future

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
368368

369369
# include <__assert>
370370
# include <__chrono/duration.h>
371+
# include <__chrono/steady_clock.h>
371372
# include <__chrono/time_point.h>
372373
# include <__condition_variable/condition_variable.h>
373374
# include <__exception/exception_ptr.h>
@@ -381,6 +382,9 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
381382
# include <__memory/shared_count.h>
382383
# include <__memory/unique_ptr.h>
383384
# include <__memory/uses_allocator.h>
385+
# include <__mutex/lock_guard.h>
386+
# include <__mutex/mutex.h>
387+
# include <__mutex/unique_lock.h>
384388
# include <__system_error/error_category.h>
385389
# include <__system_error/error_code.h>
386390
# include <__system_error/error_condition.h>
@@ -390,14 +394,19 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
390394
# include <__type_traits/conditional.h>
391395
# include <__type_traits/decay.h>
392396
# include <__type_traits/enable_if.h>
397+
# include <__type_traits/invoke.h>
398+
# include <__type_traits/is_same.h>
399+
# include <__type_traits/remove_cvref.h>
400+
# include <__type_traits/remove_reference.h>
393401
# include <__type_traits/strip_signature.h>
394402
# include <__type_traits/underlying_type.h>
395403
# include <__utility/auto_cast.h>
396404
# include <__utility/forward.h>
397405
# include <__utility/move.h>
398-
# include <mutex>
406+
# include <__utility/swap.h>
399407
# include <new>
400408
# include <stdexcept>
409+
# include <tuple>
401410
# include <version>
402411

403412
# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

libcxx/include/memory_resource

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ namespace std::pmr {
6666
# pragma GCC system_header
6767
#endif
6868

69+
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER >= 17 && _LIBCPP_STD_VER <= 20
70+
# include <mutex>
71+
#endif
72+
6973
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
7074
# include <stdexcept>
7175
#endif

libcxx/include/syncstream

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ namespace std {
121121

122122
#if _LIBCPP_HAS_LOCALIZATION
123123

124+
# include <__mutex/lock_guard.h>
124125
# include <__utility/move.h>
125126
# include <ios>
126127
# include <iosfwd> // required for declaration of default arguments
@@ -129,7 +130,6 @@ namespace std {
129130

130131
# if _LIBCPP_HAS_THREADS
131132
# include <map>
132-
# include <mutex>
133133
# include <shared_mutex>
134134
# endif
135135

libcxx/test/libcxx/transitive_includes/cxx23.csv

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,6 @@ future iosfwd
465465
future istream
466466
future limits
467467
future locale
468-
future mutex
469468
future new
470469
future ratio
471470
future sstream
@@ -692,11 +691,9 @@ memory_resource compare
692691
memory_resource cstdint
693692
memory_resource ctime
694693
memory_resource limits
695-
memory_resource mutex
696694
memory_resource new
697695
memory_resource ratio
698696
memory_resource tuple
699-
memory_resource typeinfo
700697
memory_resource version
701698
mutex cerrno
702699
mutex climits
@@ -1076,7 +1073,6 @@ syncstream iosfwd
10761073
syncstream limits
10771074
syncstream locale
10781075
syncstream map
1079-
syncstream mutex
10801076
syncstream new
10811077
syncstream optional
10821078
syncstream ostream

libcxx/test/libcxx/transitive_includes/cxx26.csv

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,6 @@ future iosfwd
464464
future istream
465465
future limits
466466
future locale
467-
future mutex
468467
future new
469468
future ratio
470469
future sstream
@@ -691,11 +690,9 @@ memory_resource compare
691690
memory_resource cstdint
692691
memory_resource ctime
693692
memory_resource limits
694-
memory_resource mutex
695693
memory_resource new
696694
memory_resource ratio
697695
memory_resource tuple
698-
memory_resource typeinfo
699696
memory_resource version
700697
mutex cerrno
701698
mutex climits
@@ -1075,7 +1072,6 @@ syncstream iosfwd
10751072
syncstream limits
10761073
syncstream locale
10771074
syncstream map
1078-
syncstream mutex
10791075
syncstream new
10801076
syncstream optional
10811077
syncstream ostream

0 commit comments

Comments
 (0)