Add developer notes about blocking GUI code
This commit is contained in:
parent
9a61eed1fc
commit
9960137697
1 changed files with 13 additions and 0 deletions
|
@ -625,6 +625,19 @@ GUI
|
||||||
should not interact with the user. That's where View classes come in. The converse also
|
should not interact with the user. That's where View classes come in. The converse also
|
||||||
holds: try to not directly access core data structures from Views.
|
holds: try to not directly access core data structures from Views.
|
||||||
|
|
||||||
|
- Avoid adding slow or blocking code in the GUI thread. In particular do not
|
||||||
|
add new `interface::Node` and `interface::Wallet` method calls, even if they
|
||||||
|
may be fast now, in case they are changed to lock or communicate across
|
||||||
|
processes in the future.
|
||||||
|
|
||||||
|
Prefer to offload work from the GUI thread to worker threads (see
|
||||||
|
`RPCExecutor` in console code as an example) or take other steps (see
|
||||||
|
https://doc.qt.io/archives/qq/qq27-responsive-guis.html) to keep the GUI
|
||||||
|
responsive.
|
||||||
|
|
||||||
|
- *Rationale*: Blocking the GUI thread can increase latency, and lead to
|
||||||
|
hangs and deadlocks.
|
||||||
|
|
||||||
Subtrees
|
Subtrees
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue