Changeset 101825 in webkit
- Timestamp:
- Dec 2, 2011 10:34:37 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r101824 r101825 1 2011-12-02 Darin Adler <darin@apple.com> 2 3 [Mac] Form stream data structures still not threadsafe 4 https://bugs.webkit.org/show_bug.cgi?id=73674 5 6 Reviewed by Anders Carlsson. 7 8 * platform/network/mac/FormDataStreamMac.mm: 9 (WebCore::streamFieldsMapMutex): Added. 10 (WebCore::associateStreamWithResourceHandle): Use streamFieldsMapMutex. 11 (WebCore::formCreate): Ditto. 12 (WebCore::formFinalize): Ditto. 13 (WebCore::httpBodyFromStream): Ditto. 14 1 15 2011-12-02 Joshua Bell <jsbell@chromium.org> 2 16 -
trunk/Source/WebCore/platform/network/mac/FormDataStreamMac.mm
r101813 r101825 57 57 namespace WebCore { 58 58 59 // We need to use NSMapTable instead of HashMap since this needs to be accessed from more than one thread. 59 static Mutex& streamFieldsMapMutex() 60 { 61 DEFINE_STATIC_LOCAL(Mutex, staticMutex, ()); 62 return staticMutex; 63 } 64 60 65 static NSMapTable *streamFieldsMap() 61 66 { … … 80 85 return; 81 86 82 if (!NSMapGet(streamFieldsMap(), stream)) 83 return; 87 { 88 MutexLocker locker(streamFieldsMapMutex()); 89 if (!NSMapGet(streamFieldsMap(), stream)) 90 return; 91 } 84 92 85 93 ASSERT(!getStreamResourceHandleMap().contains((CFReadStreamRef)stream)); … … 248 256 newInfo->remainingElements.append(newInfo->formData->elements()[size - i - 1]); 249 257 258 MutexLocker locker(streamFieldsMapMutex()); 250 259 ASSERT(!NSMapGet(streamFieldsMap(), stream)); 251 260 NSMapInsertKnownAbsent(streamFieldsMap(), stream, newInfo); … … 264 273 { 265 274 FormStreamFields* form = static_cast<FormStreamFields*>(context); 275 276 MutexLocker locker(streamFieldsMapMutex()); 266 277 267 278 ASSERT(form->formStream == stream); … … 497 508 FormData* httpBodyFromStream(NSInputStream* stream) 498 509 { 510 MutexLocker locker(streamFieldsMapMutex()); 499 511 FormStreamFields* formStream = static_cast<FormStreamFields*>(NSMapGet(streamFieldsMap(), stream)); 500 512 if (!formStream)
Note: See TracChangeset
for help on using the changeset viewer.