Now that we have a concurrent GC, access to JSVirtualMachine's m_externalObjectGraph and m_externalRememberedSet needs to guarded by a lock since both the GC marker thread and the mutator thread may access them at the same time.
This is the correct radar. The previous one was a mistake.
Created attachment 298230 [details]
Comment on attachment 298230 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=298230&action=review
> + std::lock_guard<Lock> lock(m_externalDataMutex);
It's cool to use std::lock_guard, though I've been using:
auto locker = holdLock(m_externalDataMutex);
recently, since holdLock() is generic over the lock type without requiring you to say what the lock type is.
I don't think it's a big deal, though.
Thanks for the review. I've updated it to use holdLock instead.
Patch landed in r210458: <http://trac.webkit.org/r210458>.