[Clang][SME2] Enable multi-vector loads & stores for SME2 (#75821)
[llvm-project.git] / compiler-rt / lib / scudo / standalone / condition_variable_linux.h
blobcd073287326d9be9714923d965e7a044174f5715
1 //===-- condition_variable_linux.h ------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
9 #ifndef SCUDO_CONDITION_VARIABLE_LINUX_H_
10 #define SCUDO_CONDITION_VARIABLE_LINUX_H_
12 #include "platform.h"
14 #if SCUDO_LINUX
16 #include "atomic_helpers.h"
17 #include "condition_variable_base.h"
18 #include "thread_annotations.h"
20 namespace scudo {
22 class ConditionVariableLinux
23 : public ConditionVariableBase<ConditionVariableLinux> {
24 public:
25 void notifyAllImpl(HybridMutex &M) REQUIRES(M);
27 void waitImpl(HybridMutex &M) REQUIRES(M);
29 private:
30 u32 LastNotifyAll = 0;
31 atomic_u32 Counter = {};
34 } // namespace scudo
36 #endif // SCUDO_LINUX
38 #endif // SCUDO_CONDITION_VARIABLE_LINUX_H_