Page MenuHomePhabricator

[core#19011 1/3] RPCConsole, take initial chaintip data as parameter
ClosedPublic

Authored by PiRK on Jul 5 2021, 07:52.

Details

Summary

PR description: Reduce cs_main lock accumulation during GUI startup

During the GUI startup, there is currently an accumulation of cs_main locks due to setting initial chain state values at multiple locations (in the GUI main thread).

This PR tries to cache the initial chain state (tip height, tip time, best header, etc.) short after loading the blockindex.

The cached values are then used instead of fetching them again (and thus locking cs_main) during setting the client model.

This should fix the initial GUI blocking often experienced during or short after the splashscreen.

This is a backport of core#19011 [1/4]
https://github.com/bitcoin/bitcoin/pull/19011/commits/25e1d0bf417237caa5d36b4e757f29e6c8be8aad

Test Plan

ninja all check-all

Diff Detail

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

Event Timeline

PiRK requested review of this revision.Jul 5 2021, 07:52
This revision is now accepted and ready to land.Jul 5 2021, 14:59