首页 > 代码库 > Deadlock in gpu::InProcessCommandBuffer::PerformIdleWork() due to recursive call

Deadlock in gpu::InProcessCommandBuffer::PerformIdleWork() due to recursive call

0035e4b8  ../../base/synchronization/lock_impl_posix.cc:45                   WTF::MutexBase::lock()
003c78f8  ../../base/synchronization/lock.h:23                               gpu::InProcessCommandBuffer::PerformIdleWork()
003c5ef4  ../../base/bind_internal.h:134                                     base::internal::RunnableAdapter<void (gpu::InProcessCommandBuffer::*)()>::Run(gpu::InProcessCommandBuffer*)
001e321c  ../../base/callback.h:401                                          android_webview::DeferredGpuCommandService::PerformIdleWork(bool)
00204598  ../../android_webview/native/aw_contents.cc:442                    android_webview::AwContents::DrawGL(AwDrawGLInfo*)
00204664  ../../android_webview/native/aw_contents.cc:803                    android_webview::AwContents::RequestDrawGL(_jobject*, bool)
001f0d74  ../../android_webview/browser/shared_renderer_state.cc:144         android_webview::SharedRendererState::ClientRequestDrawGLOnUIThread()
001f0f80  ../../android_webview/browser/shared_renderer_state.cc:109         android_webview::SharedRendererState::ClientRequestDrawGL()
001e38f0  ../../android_webview/browser/deferred_gpu_command_service.cc:83   android_webview::DeferredGpuCommandService::RequestProcessGL()
001e3bac  ../../android_webview/browser/deferred_gpu_command_service.cc:124  android_webview::DeferredGpuCommandService::ScheduleIdleWork(base::Callback<void ()> const&)
003c77f4  ../../gpu/command_buffer/service/in_process_command_buffer.cc:596  _ZN3gpu22InProcessCommandBuffer27ScheduleIdleWorkOnGpuThreadEv.part.63
003c7940  ../../gpu/command_buffer/service/in_process_command_buffer.cc:591  gpu::InProcessCommandBuffer::PerformIdleWork()
003c5ef4  ../../base/bind_internal.h:134                                     base::internal::RunnableAdapter<void (gpu::InProcessCommandBuffer::*)()>::Run(gpu::InProcessCommandBuffer*)
001e321c  ../../base/callback.h:401                                          android_webview::DeferredGpuCommandService::PerformIdleWork(bool)
00204598  ../../android_webview/native/aw_contents.cc:442                    android_webview::AwContents::DrawGL(AwDrawGLInfo*)
00204664  ../../android_webview/native/aw_contents.cc:803                    android_webview::AwContents::RequestDrawGL(_jobject*, bool)
001f0d74  ../../android_webview/browser/shared_renderer_state.cc:144         android_webview::SharedRendererState::ClientRequestDrawGLOnUIThread()
001f0f80  ../../android_webview/browser/shared_renderer_state.cc:109         android_webview::SharedRendererState::ClientRequestDrawGL()
001e38f0  ../../android_webview/browser/deferred_gpu_command_service.cc:83   android_webview::DeferredGpuCommandService::RequestProcessGL()
001e4198  ../../android_webview/browser/deferred_gpu_command_service.cc:101  android_webview::DeferredGpuCommandService::ScheduleTask(base::Callback<void ()> const&)
003c5820  ../../gpu/command_buffer/service/in_process_command_buffer.h:204   gpu::InProcessCommandBuffer::QueueTask(base::Callback<void ()> const&)
00375750  ../../gpu/command_buffer/client/cmd_buffer_helper.cc:156           gpu::CommandBufferHelper::Flush()
00dfb630  ../../gpu/command_buffer/client/query_tracker.cc:173               gpu::gles2::QueryTracker::Query::CheckResultsAvailable(gpu::CommandBufferHelper*)
00def0d8  ../../gpu/command_buffer/client/gles2_implementation.cc:3499       gpu::gles2::GLES2Implementation::GetQueryObjectuivEXT(unsigned int, unsigned int, unsigned int*)
002a5c48  ../../cc/resources/resource_provider.cc:1756                       cc::ResourceProvider::DidSetPixelsComplete(unsigned int)
0029a848  ../../cc/resources/pixel_buffer_raster_worker_pool.cc:381          cc::PixelBufferRasterWorkerPool::CheckForCompletedUploads()
0029c8e0  ../../cc/resources/pixel_buffer_raster_worker_pool.cc:479          cc::PixelBufferRasterWorkerPool::CheckForCompletedRasterTasks()
00298e14  ../../base/bind_internal.h:134                                     base::internal::Invoker<1, base::internal::BindState<base::internal::RunnableAdapter<void (cc::PixelBufferRasterWorkerPool::*)()>, void (cc::PixelBufferRasterWorkerPool*), void (base::internal::UnretainedWrapper<cc::PixelBufferRasterWorkerPool>)>, void (cc::PixelBufferRasterWorkerPool*)>::Run(base::internal::BindStateBase*)
00225b10  ../../base/callback.h:401                                          base::Callback<void ()>::Run() const
002255f4  ../../base/bind_internal.h:134                                     base::internal::RunnableAdapter<void (cc::DelayedUniqueNotifier::*)()>::Run(cc::DelayedUniqueNotifier*)a


但为什么在某些手机上(Nexus 4)没这个问题,在这台手机上就出问题了呢?

Deadlock in gpu::InProcessCommandBuffer::PerformIdleWork() due to recursive call