Chromium Code Reviews| Index: android_webview/browser/gl_view_renderer_manager.cc |
| diff --git a/android_webview/browser/gl_view_renderer_manager.cc b/android_webview/browser/gl_view_renderer_manager.cc |
| index bca0d135f2c8a63f5b74ffde04735a0a53d7fe3a..84f602a4cb9ba292b84c37075f79f578340d0b59 100644 |
| --- a/android_webview/browser/gl_view_renderer_manager.cc |
| +++ b/android_webview/browser/gl_view_renderer_manager.cc |
| @@ -5,6 +5,7 @@ |
| #include "android_webview/browser/gl_view_renderer_manager.h" |
| #include "base/logging.h" |
| +#include "base/threading/platform_thread.h" |
| namespace android_webview { |
| @@ -12,9 +13,21 @@ GLViewRendererManager::GLViewRendererManager() {} |
| GLViewRendererManager::~GLViewRendererManager() {} |
| +bool GLViewRendererManager::OnRenderThread() const { |
|
no sievers
2014/02/19 21:12:19
You probably want a lock here and in MarkRenderThr
boliu
2014/02/19 21:33:40
Done.
Actually this whole class will need to be p
|
| + return render_thread_.is_equal(base::PlatformThread::CurrentHandle()); |
| +} |
| + |
| +void GLViewRendererManager::MarkRenderThread() { |
| + if (render_thread_.is_null()) |
| + render_thread_ = base::PlatformThread::CurrentHandle(); |
| + DCHECK(OnRenderThread()); |
| +} |
| + |
| GLViewRendererManager::Key GLViewRendererManager::DidDrawGL( |
| Key key, |
| BrowserViewRenderer* view) { |
| + MarkRenderThread(); |
| + |
| if (key == mru_list_.end()) { |
| DCHECK(mru_list_.end() == |
| std::find(mru_list_.begin(), mru_list_.end(), view)); |