Plasma Engine  2.0
Loading...
Searching...
No Matches
ConditionalLock.h
1#pragma once
2
5template <typename T>
7{
8public:
9 PL_ALWAYS_INLINE explicit plConditionalLock(T& lock, bool bCondition)
10 : m_lock(lock)
11 , m_bCondition(bCondition)
12 {
13 if (m_bCondition)
14 {
15 m_lock.Lock();
16 }
17 }
18
19 PL_ALWAYS_INLINE ~plConditionalLock()
20 {
21 if (m_bCondition)
22 {
23 m_lock.Unlock();
24 }
25 }
26
27private:
30 void operator=(const plConditionalLock<T>& rhs);
31
32 T& m_lock;
33 bool m_bCondition;
34};
Manages a lock (e.g. a mutex) and ensures that it is properly released as the lock object goes out of...
Definition ConditionalLock.h:7