aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/libcxx/include/condition_variable
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/libcxx/include/condition_variable')
-rw-r--r--contrib/llvm-project/libcxx/include/condition_variable30
1 files changed, 23 insertions, 7 deletions
diff --git a/contrib/llvm-project/libcxx/include/condition_variable b/contrib/llvm-project/libcxx/include/condition_variable
index f13df1c012fa..ac44eb324816 100644
--- a/contrib/llvm-project/libcxx/include/condition_variable
+++ b/contrib/llvm-project/libcxx/include/condition_variable
@@ -107,10 +107,18 @@ public:
*/
#include <__assert> // all public C++ headers provide the assertion handler
+#include <__chrono/duration.h>
+#include <__chrono/steady_clock.h>
+#include <__chrono/time_point.h>
+#include <__condition_variable/condition_variable.h>
#include <__config>
#include <__memory/shared_ptr.h>
#include <__memory/unique_ptr.h>
-#include <__mutex_base>
+#include <__mutex/lock_guard.h>
+#include <__mutex/mutex.h>
+#include <__mutex/tag_types.h>
+#include <__mutex/unique_lock.h>
+#include <__utility/move.h>
#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
@@ -121,7 +129,7 @@ public:
_LIBCPP_BEGIN_NAMESPACE_STD
-class _LIBCPP_TYPE_VIS condition_variable_any
+class _LIBCPP_EXPORTED_FROM_ABI condition_variable_any
{
condition_variable __cv_;
shared_ptr<mutex> __mut_;
@@ -191,7 +199,7 @@ condition_variable_any::notify_all() _NOEXCEPT
struct __lock_external
{
template <class _Lock>
- void operator()(_Lock* __m) {__m->lock();}
+ _LIBCPP_HIDE_FROM_ABI void operator()(_Lock* __m) {__m->lock();}
};
template <class _Lock>
@@ -202,7 +210,7 @@ condition_variable_any::wait(_Lock& __lock)
unique_lock<mutex> __lk(*__mut);
__lock.unlock();
unique_ptr<_Lock, __lock_external> __lxx(&__lock);
- lock_guard<unique_lock<mutex> > __lx(__lk, adopt_lock);
+ lock_guard<unique_lock<mutex> > __lx(__lk, adopt_lock_t());
__cv_.wait(__lk);
} // __mut_.unlock(), __lock.lock()
@@ -224,7 +232,7 @@ condition_variable_any::wait_until(_Lock& __lock,
unique_lock<mutex> __lk(*__mut);
__lock.unlock();
unique_ptr<_Lock, __lock_external> __lxx(&__lock);
- lock_guard<unique_lock<mutex> > __lx(__lk, adopt_lock);
+ lock_guard<unique_lock<mutex> > __lx(__lk, adopt_lock_t());
return __cv_.wait_until(__lk, __t);
} // __mut_.unlock(), __lock.lock()
@@ -261,16 +269,24 @@ condition_variable_any::wait_for(_Lock& __lock,
_VSTD::move(__pred));
}
-_LIBCPP_FUNC_VIS
-void notify_all_at_thread_exit(condition_variable&, unique_lock<mutex>);
+_LIBCPP_EXPORTED_FROM_ABI void notify_all_at_thread_exit(condition_variable&, unique_lock<mutex>);
_LIBCPP_END_NAMESPACE_STD
#endif // !_LIBCPP_HAS_NO_THREADS
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+# include <atomic>
# include <concepts>
+# include <cstdint>
+# include <cstdlib>
+# include <cstring>
+# include <initializer_list>
+# include <new>
+# include <stdexcept>
+# include <system_error>
# include <type_traits>
+# include <typeinfo>
#endif
#endif // _LIBCPP_CONDITION_VARIABLE