Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2199)

Unified Diff: cc/proxy.cc

Issue 11232051: Remove static thread pointers from CC (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« cc/proxy.h ('K') | « cc/proxy.h ('k') | cc/rate_limiter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/proxy.cc
diff --git a/cc/proxy.cc b/cc/proxy.cc
index bc15bc58501651a2927c6390ee5a97f8aac3aff9..75523377cff984277b05cd11199892acf389ab6b 100644
--- a/cc/proxy.cc
+++ b/cc/proxy.cc
@@ -6,72 +6,63 @@
#include "cc/proxy.h"
+#include "ccthread_impl.h"
#include "cc/thread_task.h"
namespace cc {
-namespace {
-#ifndef NDEBUG
-bool implThreadIsOverridden = false;
-bool s_isMainThreadBlocked = false;
-base::PlatformThreadId threadIDOverridenToBeImplThread;
-#endif
-CCThread* s_mainThread = 0;
-CCThread* s_implThread = 0;
-}
-
void CCProxy::setMainThread(CCThread* thread)
{
- s_mainThread = thread;
+ m_compositorSupportState->mainThread = thread;
}
-CCThread* CCProxy::mainThread()
+CCThread* CCProxy::mainThread() const
{
- return s_mainThread;
+ return m_compositorSupportState->mainThread;
}
-bool CCProxy::hasImplThread()
+bool CCProxy::hasImplThread() const
{
- return s_implThread;
+ return !!m_compositorSupportState->implThread;
}
void CCProxy::setImplThread(CCThread* thread)
{
- s_implThread = thread;
+ m_compositorSupportState->implThread = thread;
}
-CCThread* CCProxy::implThread()
+CCThread* CCProxy::implThread() const
{
- return s_implThread;
+ return m_compositorSupportState->implThread;
}
-CCThread* CCProxy::currentThread()
+CCThread* CCProxy::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 CCProxy::isMainThread()
+bool CCProxy::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 CCProxy::isImplThread()
+bool CCProxy::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 CCProxy::isImplThread()
#ifndef NDEBUG
void CCProxy::setCurrentThreadIsImplThread(bool isImplThread)
{
- implThreadIsOverridden = isImplThread;
+ m_implThreadIsOverridden = isImplThread;
if (isImplThread)
- threadIDOverridenToBeImplThread = base::PlatformThread::CurrentId();
+ m_threadIDOverridenToBeImplThread = base::PlatformThread::CurrentId();
}
#endif
-bool CCProxy::isMainThreadBlocked()
+bool CCProxy::isMainThreadBlocked() const
{
#ifndef NDEBUG
- return s_isMainThreadBlocked;
+ return m_isMainThreadBlocked;
#else
return true;
#endif
@@ -100,13 +91,17 @@ bool CCProxy::isMainThreadBlocked()
#ifndef NDEBUG
void CCProxy::setMainThreadBlocked(bool isMainThreadBlocked)
{
- s_isMainThreadBlocked = isMainThreadBlocked;
+ m_isMainThreadBlocked = isMainThreadBlocked;
}
#endif
-CCProxy::CCProxy()
+CCProxy::CCProxy(CompositorSupportState* compositorSupportState)
+ : m_compositorSupportState(compositorSupportState)
+#ifndef NDEBUG
+ , m_implThreadIsOverridden(false)
+ , m_isMainThreadBlocked(false)
+#endif
{
- DCHECK(isMainThread());
}
CCProxy::~CCProxy()
« cc/proxy.h ('K') | « cc/proxy.h ('k') | cc/rate_limiter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698