Page MenuHomePhabricator

gui: Make polling in ClientModel asynchronous
ClosedPublic

Authored by PiRK on Oct 30 2020, 13:57.

Details

Reviewers
Fabien
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Restricted Project
Commits
rABC3bfb5fc3f8c5: gui: Make polling in ClientModel asynchronous
Summary

After #14193 ClientModel::updateTimer can take some time, as such the GUI hangs, like #17112.

Fixes this by polling in a background thread and updating the GUI asynchronously.

This is a backport of Core PR17135 and Core PR17427

The second PR fixes a bug introduced by the first (ClientModel::mempoolSizeChanged() signal has unregistered parameter type size_t)

Test Plan

ninja && ninja check && src/qt/bitcoin-qt

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Owners added a reviewer: Restricted Owners Package.Oct 30 2020, 13:57
PiRK requested review of this revision.Oct 30 2020, 13:58
Fabien requested changes to this revision.Oct 30 2020, 16:37
Fabien added a subscriber: Fabien.

You need PR17427 as well

This revision now requires changes to proceed.Oct 30 2020, 16:37
PiRK edited the test plan for this revision. (Show Details)
PiRK edited the summary of this revision. (Show Details)
Fabien requested changes to this revision.Oct 30 2020, 21:08
Fabien added inline comments.
src/qt/bitcoin.cpp
544 ↗(On Diff #25280)

You're missing a change from PR17427 here

This revision now requires changes to proceed.Oct 30 2020, 21:08

complete comment line 544, and ordering of lines (size_t before
std::function<void(), with a blank line in between)

This revision is now accepted and ready to land.Oct 31 2020, 10:24