Index: third_party/WebKit/Source/platform/heap/PersistentNode.h |
diff --git a/third_party/WebKit/Source/platform/heap/PersistentNode.h b/third_party/WebKit/Source/platform/heap/PersistentNode.h |
index 52b558084cb0772fac38b2915c8fc591c9e614d5..7bbae43f15681a50c158e50971baf2ef13e245e3 100644 |
--- a/third_party/WebKit/Source/platform/heap/PersistentNode.h |
+++ b/third_party/WebKit/Source/platform/heap/PersistentNode.h |
@@ -201,7 +201,12 @@ private: |
// because we don't want to virtualize performance-sensitive methods |
// such as PersistentRegion::allocate/freePersistentNode. |
OwnPtr<PersistentRegion> m_persistentRegion; |
- Mutex m_mutex; |
+ |
+ // Recursive as prepareForThreadStateTermination() clears a PersistentNode's |
+ // associated Persistent<> -- it in turn freeing the PersistentNode. And both |
+ // CrossThreadPersistentRegion operations need a lock on the region before |
+ // mutating. |
+ RecursiveMutex m_mutex; |
}; |
} // namespace blink |