Title: [165165] trunk/Source/_javascript_Core
Revision
165165
Author
[email protected]
Date
2014-03-05 19:29:04 -0800 (Wed, 05 Mar 2014)

Log Message

Web Inspector: Prevent possible deadlock in view indication
https://bugs.webkit.org/show_bug.cgi?id=129766

Patch by Joseph Pecoraro <[email protected]> on 2014-03-05
Reviewed by Geoffrey Garen.

* inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::receivedIndicateMessage):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (165164 => 165165)


--- trunk/Source/_javascript_Core/ChangeLog	2014-03-06 03:20:37 UTC (rev 165164)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-03-06 03:29:04 UTC (rev 165165)
@@ -1,3 +1,13 @@
+2014-03-05  Joseph Pecoraro  <[email protected]>
+
+        Web Inspector: Prevent possible deadlock in view indication
+        https://bugs.webkit.org/show_bug.cgi?id=129766
+
+        Reviewed by Geoffrey Garen.
+
+        * inspector/remote/RemoteInspector.mm:
+        (Inspector::RemoteInspector::receivedIndicateMessage):
+
 2014-03-05  Mark Hahnenberg  <[email protected]>
 
         JSObject::fastGetOwnPropertySlot does a slow check for OverridesGetOwnPropertySlot

Modified: trunk/Source/_javascript_Core/inspector/remote/RemoteInspector.mm (165164 => 165165)


--- trunk/Source/_javascript_Core/inspector/remote/RemoteInspector.mm	2014-03-06 03:20:37 UTC (rev 165164)
+++ trunk/Source/_javascript_Core/inspector/remote/RemoteInspector.mm	2014-03-06 03:29:04 UTC (rev 165165)
@@ -479,13 +479,16 @@
     BOOL indicateEnabled = [[userInfo objectForKey:WIRIndicateEnabledKey] boolValue];
 
     dispatchAsyncOnQueueSafeForAnyDebuggable(^{
-        std::lock_guard<std::mutex> lock(m_mutex);
+        RemoteInspectorDebuggable* debuggable = nullptr;
+        {
+            std::lock_guard<std::mutex> lock(m_mutex);
 
-        auto it = m_debuggableMap.find(identifier);
-        if (it == m_debuggableMap.end())
-            return;
+            auto it = m_debuggableMap.find(identifier);
+            if (it == m_debuggableMap.end())
+                return;
 
-        RemoteInspectorDebuggable* debuggable = it->value.first;
+            debuggable = it->value.first;
+        }
         debuggable->setIndicating(indicateEnabled);
     });
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to