| Index: cc/output/context_provider.cc
|
| diff --git a/cc/output/context_provider.cc b/cc/output/context_provider.cc
|
| index 7842136c8f719e0ca05dc665202e991ffebcb017..a11aeb6d44503e9b4078f01fc35fed007a72e4b8 100644
|
| --- a/cc/output/context_provider.cc
|
| +++ b/cc/output/context_provider.cc
|
| @@ -23,4 +23,19 @@ ContextProvider::ScopedContextLock::~ScopedContextLock() {
|
| context_provider_->DetachFromThread();
|
| }
|
|
|
| +ContextProvider::ScopedContext::ScopedContext(ContextProvider* context_provider)
|
| + : context_provider_(context_provider) {
|
| + // Allow current thread to use |context_provider_|.
|
| + context_provider_->DetachFromThread();
|
| + busy_ = context_provider_->CacheController()->ClientBecameBusy();
|
| +}
|
| +
|
| +ContextProvider::ScopedContext::~ScopedContext() {
|
| + // Let ContextCacheController know we are no longer busy.
|
| + context_provider_->CacheController()->ClientBecameNotBusy(std::move(busy_));
|
| +
|
| + // Allow usage by thread for which |context_provider_| is bound to.
|
| + context_provider_->DetachFromThread();
|
| +}
|
| +
|
| } // namespace cc
|
|
|