Remove cs_main lock annotation from ChainstateManager.m_blockman

BlockManager is a large data structure, and cs_main is not required to
take its address or access every part of it. Individual BlockManager
fields and methods which do require cs_main like m_block_index and
LookupBlockIndex are already annotated separately, and these other
annotations describe locking requirements more accurately and do a
better job enforcing thread safety.

Since cs_main is not needed to access the address of the m_block object,
this commit drops cs_main LOCK calls which were added pointlessly to
satisfy this annotation in the past.

Co-authored-by: Carl Dong <contact@carldong.me>
This commit is contained in:
Ryan Ofsky
2022-01-10 15:26:13 -05:00
parent c561f2f06e
commit ce95fb36af
3 changed files with 3 additions and 3 deletions

View File

@@ -828,7 +828,7 @@ public:
std::thread m_load_block;
//! A single BlockManager instance is shared across each constructed
//! chainstate to avoid duplicating block metadata.
node::BlockManager m_blockman GUARDED_BY(::cs_main);
node::BlockManager m_blockman;
/**
* In order to efficiently track invalidity of headers, we keep the set of