Changeset 55247 in webkit for trunk/JavaScriptCore/wtf/ThreadingWin.cpp
- Timestamp:
- Feb 25, 2010, 10:27:45 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/wtf/ThreadingWin.cpp
r55246 r55247 119 119 #pragma pack(pop) 120 120 121 typedef struct { 122 HANDLE handle; 123 void* context; 124 } ThreadInfo; 125 121 126 void initializeCurrentThreadInternal(const char* szThreadName) 122 127 { … … 166 171 } 167 172 168 static HashMap<DWORD, HANDLE>& threadMap()169 { 170 static HashMap<DWORD, HANDLE> map;173 static HashMap<DWORD, ThreadInfo>& threadMap() 174 { 175 static HashMap<DWORD, ThreadInfo> map; 171 176 return map; 172 177 } 173 178 174 static void storeThreadHandleByIdentifier(DWORD threadID, HANDLE threadHandle )179 static void storeThreadHandleByIdentifier(DWORD threadID, HANDLE threadHandle, void* context) 175 180 { 176 181 MutexLocker locker(threadMapMutex()); 177 182 ASSERT(!threadMap().contains(threadID)); 178 threadMap().add(threadID, threadHandle); 183 ThreadInfo info; 184 info.handle = threadHandle; 185 info.context = context; 186 threadMap().add(threadID, info); 179 187 } 180 188 … … 182 190 { 183 191 MutexLocker locker(threadMapMutex()); 184 return threadMap().get(id); 192 return threadMap().get(id).handle; 193 } 194 195 static void* contextForIdentifier(ThreadIdentifier id) 196 { 197 MutexLocker locker(threadMapMutex()); 198 return threadMap().get(id).context; 185 199 } 186 200 … … 238 252 239 253 threadID = static_cast<ThreadIdentifier>(threadIdentifier); 240 storeThreadHandleByIdentifier(threadIdentifier, threadHandle );254 storeThreadHandleByIdentifier(threadIdentifier, threadHandle, data); 241 255 242 256 return threadID; … … 279 293 { 280 294 return currentThread() == mainThreadIdentifier; 295 } 296 297 void* threadContext(ThreadIdentifier threadID) 298 { 299 return contextForIdentifier(threadID); 281 300 } 282 301
Note:
See TracChangeset
for help on using the changeset viewer.