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)); |