We hang inside IOSurfacePool::setPoolSize(unsigned long) via IOSurfacePool::discardAllSurfacesInternal() as the latter tries to grab the lock while setPoolSize holds a locker.
Created attachment 418511 [details] Patch
Comment on attachment 418511 [details] Patch Clearing flags on attachment: 418511 Committed r271943: <https://trac.webkit.org/changeset/271943>
All reviewed patches have been landed. Closing bug.
<rdar://problem/73656115>
Comment on attachment 418511 [details] Patch Thanks for fixing.
Comment on attachment 418511 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=418511&action=review > Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:332 > +void IOSurfacePool::discardAllSurfacesInternal() nit: A style I like in JSC is we do this by keeping the same function name, and requiring a locker to be passed in. So, we'd have: void discardAllSurfaces() and void discardAllSurfaces(const LockHolder&) and the former would call the latter with the locker as an argument. Same with `evict`