Chromium Code Reviews| Index: cc/proxy.cc |
| diff --git a/cc/proxy.cc b/cc/proxy.cc |
| index 317499c3721c2785caa6febe3ca1a45f4d4b3624..47c37deb02536e0e6f5e589a66bd2f9bfc37dbbd 100644 |
| --- a/cc/proxy.cc |
| +++ b/cc/proxy.cc |
| @@ -6,72 +6,63 @@ |
| #include "cc/proxy.h" |
| +#include "webkit/compositor_bindings/ccthread_impl.h" |
| #include "cc/thread_task.h" |
| namespace cc { |
| -namespace { |
| -#ifndef NDEBUG |
| -bool implThreadIsOverridden = false; |
| -bool s_isMainThreadBlocked = false; |
| -base::PlatformThreadId threadIDOverridenToBeImplThread; |
| -#endif |
| -Thread* s_mainThread = 0; |
| -Thread* s_implThread = 0; |
| -} |
| - |
| void Proxy::setMainThread(Thread* thread) |
| { |
| - s_mainThread = thread; |
| + m_mainThread.reset(thread); |
| } |
| -Thread* Proxy::mainThread() |
| +Thread* Proxy::mainThread() const |
| { |
| - return s_mainThread; |
| + return m_mainThread.get(); |
| } |
| -bool Proxy::hasImplThread() |
| +bool Proxy::hasImplThread() const |
| { |
| - return s_implThread; |
| + return !!m_implThread.get(); |
| } |
| void Proxy::setImplThread(Thread* thread) |
| { |
| - s_implThread = thread; |
| + m_implThread.reset(thread); |
| } |
| -Thread* Proxy::implThread() |
| +Thread* Proxy::implThread() const |
| { |
| - return s_implThread; |
| + return m_implThread.get(); |
| } |
| -Thread* Proxy::currentThread() |
| +Thread* Proxy::currentThread() const |
| { |
| base::PlatformThreadId currentThreadIdentifier = base::PlatformThread::CurrentId(); |
| - if (s_mainThread && s_mainThread->threadID() == currentThreadIdentifier) |
| - return s_mainThread; |
| - if (s_implThread && s_implThread->threadID() == currentThreadIdentifier) |
| - return s_implThread; |
| + if (mainThread() && mainThread()->threadID() == currentThreadIdentifier) |
| + return mainThread(); |
| + if (implThread() && implThread()->threadID() == currentThreadIdentifier) |
| + return implThread(); |
| return 0; |
| } |
| -bool Proxy::isMainThread() |
| +bool Proxy::isMainThread() const |
| { |
| #ifndef NDEBUG |
| - DCHECK(s_mainThread); |
| - if (implThreadIsOverridden && base::PlatformThread::CurrentId() == threadIDOverridenToBeImplThread) |
| + DCHECK(mainThread()); |
| + if (m_implThreadIsOverridden && base::PlatformThread::CurrentId() == m_threadIDOverridenToBeImplThread) |
| return false; |
| - return base::PlatformThread::CurrentId() == s_mainThread->threadID(); |
| + return base::PlatformThread::CurrentId() == mainThread()->threadID(); |
| #else |
| return true; |
| #endif |
| } |
| -bool Proxy::isImplThread() |
| +bool Proxy::isImplThread() const |
| { |
| #ifndef NDEBUG |
| - base::PlatformThreadId implThreadID = s_implThread ? s_implThread->threadID() : 0; |
| - if (implThreadIsOverridden && base::PlatformThread::CurrentId() == threadIDOverridenToBeImplThread) |
| + base::PlatformThreadId implThreadID = implThread() ? implThread()->threadID() : 0; |
| + if (m_implThreadIsOverridden && base::PlatformThread::CurrentId() == m_threadIDOverridenToBeImplThread) |
| return true; |
| return base::PlatformThread::CurrentId() == implThreadID; |
| #else |
| @@ -82,16 +73,16 @@ bool Proxy::isImplThread() |
| #ifndef NDEBUG |
| void Proxy::setCurrentThreadIsImplThread(bool isImplThread) |
| { |
| - implThreadIsOverridden = isImplThread; |
| + m_implThreadIsOverridden = isImplThread; |
| if (isImplThread) |
| - threadIDOverridenToBeImplThread = base::PlatformThread::CurrentId(); |
| + m_threadIDOverridenToBeImplThread = base::PlatformThread::CurrentId(); |
| } |
| #endif |
| -bool Proxy::isMainThreadBlocked() |
| +bool Proxy::isMainThreadBlocked() const |
| { |
| #ifndef NDEBUG |
| - return s_isMainThreadBlocked; |
| + return m_isMainThreadBlocked; |
| #else |
| return true; |
| #endif |
| @@ -100,13 +91,18 @@ bool Proxy::isMainThreadBlocked() |
| #ifndef NDEBUG |
| void Proxy::setMainThreadBlocked(bool isMainThreadBlocked) |
| { |
| - s_isMainThreadBlocked = isMainThreadBlocked; |
| + m_isMainThreadBlocked = isMainThreadBlocked; |
| } |
| #endif |
| -Proxy::Proxy() |
| +Proxy::Proxy(Thread* implThread) |
| + : m_mainThread(WebKit::CCThreadImpl::createForCurrentThread()) |
| + , m_implThread(implThread) |
| +#ifndef NDEBUG |
| + , m_implThreadIsOverridden(false) |
| + , m_isMainThreadBlocked(false) |
| +#endif |
| { |
|
danakj
2012/10/25 05:06:06
DCHECK(m_mainThread != m_implThread) ?
|
| - DCHECK(isMainThread()); |
| } |
| Proxy::~Proxy() |