File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -100,4 +100,33 @@ class ThreadLocalStaticPtr
100100template <typename T>
101101T* ThreadLocalStaticPtr<T>::ptr_(nullptr );
102102
103+ // /////////////////////////////////////////////////////////////////////////////////////////////////
104+ // / ConditionalCriticalSection
105+ // /////////////////////////////////////////////////////////////////////////////////////////////////
106+ template <typename TMutex, bool is_enabled>
107+ class ConditionalCriticalSection ;
108+
109+ template <typename TMutex>
110+ class ConditionalCriticalSection <TMutex,false >
111+ {
112+ public:
113+ template <typename F>
114+ void Access (const F& f) { f (); }
115+ };
116+
117+ template <typename TMutex>
118+ class ConditionalCriticalSection <TMutex,true >
119+ {
120+ public:
121+ template <typename F>
122+ void Access (const F& f)
123+ {// mutex_
124+ std::lock_guard<TMutex> lock (mutex_);
125+
126+ f ();
127+ }// ~mutex_
128+ private:
129+ TMutex mutex_;
130+ };
131+
103132/* ***************************************/ REACT_IMPL_END /* **************************************/
You can’t perform that action at this time.
0 commit comments