Page MenuHomePhabricator

Also call other wallet notify callbacks in scheduler thread
ClosedPublic

Authored by deadalnix on May 30 2019, 01:16.

Details

Summary

This runs Block{Connected,Disconnected}, SetBestChain, Inventory,
and TransactionAddedToMempool on the background scheduler thread.

Of those, only BlockConnected is used outside of Wallet/ZMQ, and
is used only for orphan transaction removal in net_processing,
something which does not need to be synchronous with anything
else.

This partially reverts #9583, re-enabling some of the gains from
#7946. This does not, however, re-enable the gains achieved by
repeatedly releasing cs_main between each transaction processed.

This is a partial backport of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/e545dedf72bff2bd41c93c93eb576929fce37112

Depends on D3154

Test Plan
make check
./test/functional/test_runner.py

Diff Detail

Repository
rABC Bitcoin ABC
Branch
callschedulerthread
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 6067
Build 10183: Bitcoin ABC Buildbot (legacy)
Build 10182: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.May 30 2019, 12:37

@deadalnix I recall you mentioned a slight concern about this backport ... or was it just another commit in the same PR?