1#pragma once
2
3#include <nn/os/detail/os_InternalConditionVariable-os.horizon.h>
4#include <nn/os/detail/os_InternalCriticalSection.h>
5
6namespace nn::os::detail {
7
8class InternalConditionVariable {
9 InternalConditionVariableImpl m_Impl;
10
11public:
12 void Initialize();
13 void Signal();
14 void Broadcast();
15 void Wait(InternalCriticalSection*);
16 ConditionVariableStatus TimedWait(InternalCriticalSection*, const TimeoutHelper&);
17};
18
19typedef util::TypedStorage<InternalConditionVariable, 4, 4> InternalConditionVariableStorage;
20
21} // namespace nn::os::detail