Changeset View
Changeset View
Standalone View
Standalone View
doc/developer-notes.md
Show First 20 Lines • Show All 413 Lines • ▼ Show 20 Lines | |||||
Deadlocks due to inconsistent lock ordering (thread 1 locks `cs_main` and then | Deadlocks due to inconsistent lock ordering (thread 1 locks `cs_main` and then | ||||
`cs_wallet`, while thread 2 locks them in the opposite order: result, deadlock | `cs_wallet`, while thread 2 locks them in the opposite order: result, deadlock | ||||
as each waits for the other to release its lock) are a problem. Compile with | as each waits for the other to release its lock) are a problem. Compile with | ||||
`-DDEBUG_LOCKORDER` (or use `-DCMAKE_BUILD_TYPE=Debug`) to get lock order | `-DDEBUG_LOCKORDER` (or use `-DCMAKE_BUILD_TYPE=Debug`) to get lock order | ||||
inconsistencies reported in the debug.log file. | inconsistencies reported in the debug.log file. | ||||
Re-architecting the core code so there are better-defined interfaces | Re-architecting the core code so there are better-defined interfaces | ||||
between the various components is a goal, with any necessary locking | between the various components is a goal, with any necessary locking | ||||
done by the components (e.g. see the self-contained `CBasicKeyStore` class | done by the components (e.g. see the self-contained `FillableSigningProvider` class | ||||
and its `cs_KeyStore` lock for example). | and its `cs_KeyStore` lock for example). | ||||
Threads | Threads | ||||
------- | ------- | ||||
- ThreadScriptCheck : Verifies block scripts. | - ThreadScriptCheck : Verifies block scripts. | ||||
- ThreadImport : Loads blocks from blk*.dat files or bootstrap.dat. | - ThreadImport : Loads blocks from blk*.dat files or bootstrap.dat. | ||||
▲ Show 20 Lines • Show All 559 Lines • Show Last 20 Lines |