Skip to content

Long or blocking calls should be async #642

Open
@hebasto

Description

@hebasto

The comment here is not entirely correct:
https://github.com/bitcoin/bitcoin/blob/4bfef0daeb9351c200b5bd09e60596a29b4d3523/src/qt/walletmodel.cpp#L71-L74

The problem happens when the locks are held and calculating the balance takes a lot of time - causing the GUI to stuck.

Beside the obvious improvement - drop polling and update only when necessary - the actual balance calculation must be asynchronous otherwise Qt's event loop isn't able to make the GUI smooth - noticeable on big wallet. This also applies for anything that takes a lot - whether it requires other locks or not.

Moved from bitcoin/bitcoin#16874.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions