| Index: cc/resources/resource_pool.h
|
| diff --git a/cc/resources/resource_pool.h b/cc/resources/resource_pool.h
|
| index 20a66f06a4f964ef049f9a9d7060e9ef2cb047ae..a83ada335780ce20667b838c41bf058c104dfb16 100644
|
| --- a/cc/resources/resource_pool.h
|
| +++ b/cc/resources/resource_pool.h
|
| @@ -77,14 +77,26 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider {
|
| uint64_t content_id() const { return content_id_; }
|
| void set_content_id(uint64_t content_id) { content_id_ = content_id; }
|
|
|
| + base::TimeTicks last_usage() const { return last_usage_; }
|
| + void set_last_usage(base::TimeTicks time) { last_usage_ = time; }
|
| +
|
| private:
|
| explicit PoolResource(ResourceProvider* resource_provider)
|
| : ScopedResource(resource_provider), content_id_(0) {}
|
| uint64_t content_id_;
|
| + base::TimeTicks last_usage_;
|
| };
|
|
|
| void DidFinishUsingResource(scoped_ptr<PoolResource> resource);
|
| void DeleteResource(scoped_ptr<PoolResource> resource);
|
| + void DeleteUnusedResource(scoped_ptr<PoolResource> resource);
|
| +
|
| + // Functions which manage periodic eviction of expired resources.
|
| + void ScheduleEvictExpiredResources();
|
| + void EvictExpiredResources();
|
| + void EvictResourcesNotUsedSince(base::TimeTicks time_limit);
|
| + bool HasEvictableResources() const;
|
| + base::TimeTicks GetUsageTimeForLRUResource() const;
|
|
|
| ResourceProvider* resource_provider_;
|
| const GLenum target_;
|
| @@ -102,6 +114,12 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider {
|
| using ResourceMap = base::ScopedPtrMap<ResourceId, scoped_ptr<PoolResource>>;
|
| ResourceMap in_use_resources_;
|
|
|
| + bool evict_expired_resources_pending_;
|
| + base::TimeDelta resource_expiration_delay_;
|
| + base::Closure evict_expired_resources_callback_;
|
| +
|
| + base::WeakPtrFactory<ResourcePool> weak_ptr_factory_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ResourcePool);
|
| };
|
|
|
|
|