MEL
Microthread & Execution library
Singleton_Multithread_Policy.h
1 #pragma once
2 #include <MelLibType.h>
3 #include <mutex>
4 
5 namespace mel
6 {
7  namespace core
8  {
13  template <class T> class Singleton_Multithread_Policy
14  {
15  private:
16  template <class U> class Locker
17  {
18  public:
19  Locker() { mCs.lock(); }
20  ~Locker() { mCs.unlock(); }
21 
22  private:
23  static std::mutex mCs;
24  };
25 
26  public:
27  typedef T VolatileType;
28  typedef Locker<T> Lock;
29  };
30  template <class T>
31  template <class U>
32  std::mutex Singleton_Multithread_Policy<T>::Locker<U>::mCs;
33  } // namespace core
34 } // namespace mel
Definition: Singleton_Multithread_Policy.h:14
Definition: Callback_Impl.h:11