Changeset 10635
- Timestamp:
- 10/10/09 13:00:35 (4 years ago)
- Location:
- OpenSceneGraph/trunk/src/OpenThreads/win32
- Files:
-
- 2 modified
-
Win32Thread.cpp (modified) (1 diff)
-
Win32ThreadPrivateData.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/src/OpenThreads/win32/Win32Thread.cpp
r10219 r10635 206 206 Thread* Thread::CurrentThread() 207 207 { 208 return (Thread* )TlsGetValue(Win32ThreadPrivateData::TLS.getId()); 208 DWORD ID = Win32ThreadPrivateData::TLS.getId(); 209 if (ID == TLS_OUT_OF_INDEXES) 210 return 0; 211 return (Thread* )TlsGetValue(ID); 209 212 } 210 213 -
OpenSceneGraph/trunk/src/OpenThreads/win32/Win32ThreadPrivateData.h
r9832 r10635 72 72 DWORD getId() 73 73 { 74 static bool initialized = false;75 74 if (!initialized) { 76 75 ID = TlsAlloc(); … … 79 78 return ID; 80 79 } 80 TlsHolder() : ID(TLS_OUT_OF_INDEXES), initialized(false) {} 81 81 ~TlsHolder(){ 82 TlsFree(ID); 82 if (initialized) 83 TlsFree(ID); 84 ID = TLS_OUT_OF_INDEXES; 83 85 } 84 86 private: 85 87 DWORD ID; 88 bool initialized; 86 89 }; 87 90
