aboutsummaryrefslogtreecommitdiff
path: root/doc/coding.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/coding.txt')
-rw-r--r--doc/coding.txt32
1 files changed, 23 insertions, 9 deletions
diff --git a/doc/coding.txt b/doc/coding.txt
index ec31ccded2..b3c812a486 100644
--- a/doc/coding.txt
+++ b/doc/coding.txt
@@ -43,38 +43,52 @@ bn CBigNum
-------------------------
Locking/mutex usage notes
-The code is multi-threaded, and uses mutexes and the CRITICAL_BLOCK/TRY_CRITICAL_BLOCK macros to protect data structures.
+The code is multi-threaded, and uses mutexes and the
+CRITICAL_BLOCK/TRY_CRITICAL_BLOCK macros to protect data structures.
-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 as each waits for the other to release its lock) are a problem. Compile with -DDEBUG_LOCKORDER to get lock order inconsistencies reported in the debug.log file.
+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 as each waits for the other to release its lock) are
+a problem. Compile with -DDEBUG_LOCKORDER to get lock order
+inconsistencies reported in the debug.log file.
-Re-architecting the core code so there are better-defined interfaces between the various components is a goal, with any necessary locking done by the components (e.g. see the self-contained CKeyStore class and its cs_KeyStore lock for example).
+Re-architecting the core code so there are better-defined interfaces
+between the various components is a goal, with any necessary locking
+done by the components (e.g. see the self-contained CKeyStore class
+and its cs_KeyStore lock for example).
-------
Threads
StartNode : Starts other threads.
-ThreadGetMyExternalIP : Determines outside-the-firewall IP address, sends addr message to connected peers when it determines it.
+ThreadGetMyExternalIP : Determines outside-the-firewall IP address,
+sends addr message to connected peers when it determines it.
-ThreadIRCSeed : Joins IRC bootstrapping channel, watching for new peers and advertising this node's IP address.
+ThreadIRCSeed : Joins IRC bootstrapping channel, watching for new
+peers and advertising this node's IP address.
ThreadSocketHandler : Sends/Receives data from peers on port 8333.
-ThreadMessageHandler : Higher-level message handling (sending and receiving).
+ThreadMessageHandler : Higher-level message handling (sending and
+receiving).
ThreadOpenConnections : Initiates new connections to peers.
ThreadTopUpKeyPool : replenishes the keystore's keypool.
-ThreadCleanWalletPassphrase : re-locks an encrypted wallet after user has unlocked it for a period of time.
+ThreadCleanWalletPassphrase : re-locks an encrypted wallet after user
+has unlocked it for a period of time.
SendingDialogStartTransfer : used by pay-via-ip-address code (obsolete)
ThreadDelayedRepaint : repaint the gui
-ThreadFlushWalletDB : Close the wallet.dat file if it hasn't been used in 500ms.
+ThreadFlushWalletDB : Close the wallet.dat file if it hasn't been used
+in 500ms.
-ThreadRPCServer : Remote procedure call handler, listens on port 8332 for connections and services them.
+ThreadRPCServer : Remote procedure call handler, listens on port 8332
+for connections and services them.
ThreadBitcoinMiner : Generates bitcoins