diff options
author | Michal Klocek <michal.klocek@qt.io> | 2022-08-15 17:10:40 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2022-09-06 09:27:32 +0000 |
commit | 479cb46ed68d4d365f476de445d3372af4bf0b7f (patch) | |
tree | f3f836d243ee0051f074f05aa8e8e2dc2a153579 | |
parent | 1df1a4d9a77f27e6065839562b95fefa12b1def4 (diff) | |
download | qtwebengine-chromium-479cb46ed68d4d365f476de445d3372af4bf0b7f.tar.gz |
Fix endless loop on race condition on qemu startup
Fix wierd race condtion which ends in endless loop with
single-process, when gpu_channel_host is not ready in
WidgetBase::RequestNewLayerTreeFrameSink and calls
callbeck with nullptr, which ends in
LayerTreeView::DidFailToInitializeLayerTreeFrameSink
which again calls RequestNewLayerTreeFrameSink wihout giving
a chance to initalize channel and round repets itself.
Give 10ms delay to cover the issue.
Task-number: QTBUG-105342
Change-Id: I575c6e9c2d95caa9afd6b0d6bb5e9e2374f264d0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | chromium/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/chromium/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc b/chromium/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc index 73e70b80b43..aa438c06554 100644 --- a/chromium/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc +++ b/chromium/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc @@ -272,9 +272,9 @@ void LayerTreeView::DidFailToInitializeLayerTreeFrameSink() { return; } layer_tree_frame_sink_request_failed_while_invisible_ = false; - layer_tree_host_->GetTaskRunnerProvider()->MainThreadTaskRunner()->PostTask( + layer_tree_host_->GetTaskRunnerProvider()->MainThreadTaskRunner()->PostDelayedTask( FROM_HERE, base::BindOnce(&LayerTreeView::RequestNewLayerTreeFrameSink, - weak_factory_.GetWeakPtr())); + weak_factory_.GetWeakPtr()), base::TimeDelta::FromMilliseconds(10)); } void LayerTreeView::WillCommit() { |