DotNetDupe 4.0.6
C++17/20 Implementation of the .NET Base Class Library (BCL)
Loading...
Searching...
No Matches
ConditionVariable.h
Go to the documentation of this file.
1
5
6#pragma once
7#include "System/Object.h"
9
10namespace DotNetDupe {
11 namespace System {
12 namespace Threading {
13 class CriticalSection;
14
21 class ConditionVariable : public Object {
22 public:
25
28
33
37
42 DOTNETDUPE_API bool Wait(CriticalSection& cs, int millisecondsTimeout);
43
45 DOTNETDUPE_API void Pulse();
46
49
50 private:
51 struct Impl;
52 SmartPointer<Impl> m_pImpl;
53 };
54 }
55 }
56}
#define DOTNETDUPE_API
Platform-specific linkage decoration for exporting or importing library symbols.
Definition Common.h:20
Base object class for DotNetDupe mirroring .NET System.Object.
Provides reference-counted and weak pointer memory management primitives ensuring zero raw ownership.
Supports all classes in the DotNetDupe class hierarchy.
Definition Object.h:18
A unified smart pointer that supports both unique and shared ownership semantics.
void Wait(CriticalSection &cs)
Releases the associated CriticalSection lock and blocks the current thread until signaled.
ConditionVariable()
Initializes a new instance of the ConditionVariable class.
void PulseAll()
Notifies all waiting threads.
ConditionVariable & operator=(const ConditionVariable &)=delete
ConditionVariable(ConditionVariable &&other) noexcept
ConditionVariable(const ConditionVariable &)=delete
ConditionVariable & operator=(ConditionVariable &&other) noexcept
Provides a re-entrant mutual exclusion primitive for thread synchronization.