Index: cc/resources/resource_pool.cc |
diff --git a/cc/resources/resource_pool.cc b/cc/resources/resource_pool.cc |
index e0e5af3703603e744775ab5e86afdf509a13198c..cdcaa4dbe47ad9d89c617f36eee7f5cbd3cb0ba5 100644 |
--- a/cc/resources/resource_pool.cc |
+++ b/cc/resources/resource_pool.cc |
@@ -191,11 +191,14 @@ |
delete resource; |
} |
-void ResourcePool::CheckBusyResources() { |
+void ResourcePool::CheckBusyResources(bool wait_if_needed) { |
ResourceList::iterator it = busy_resources_.begin(); |
while (it != busy_resources_.end()) { |
ScopedResource* resource = it->resource; |
+ |
+ if (wait_if_needed) |
+ resource_provider_->WaitReadLockIfNeeded(resource->id()); |
if (resource_provider_->CanLockForWrite(resource->id())) { |
DidFinishUsingResource(resource, it->content_id); |