All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ThreadLocalPointer.h
1 #pragma once
2 
3 #include <pthread.h>
4 
5 template <class T>
7 {
8 public:
9 
11  {
12  pthread_key_create(&m_key, NULL);
13  }
14 
16  {
17  pthread_key_delete(m_key);
18  }
19 
20  void SetValue(T* _value)
21  {
22  pthread_setspecific(m_key, reinterpret_cast<const void*>(_value));
23  }
24 
25  T* GetValue()
26  {
27  return reinterpret_cast<T*>(pthread_getspecific(m_key));
28  }
29 
30 private:
31 
32  pthread_key_t m_key;
33 };