[#ChainstateManager-m_chainstates]
= xref:ChainstateManager.adoc[ChainstateManager]::m&lowbar;chainstates
:relfileprefix: ../
:mrdocs:

List of chainstates&period; Note&colon; in general, it is not safe to delete Chainstate objects once they are added to this list because there is no mutex that can be locked to prevent Chainstate pointers from being used while they are deleted&period; (cs&lowbar;main doesn&apos;t work because it is too narrow and is released in the middle of Chainstate&colon;&colon;ActivateBestChain to let notifications be processed&period; m&lowbar;chainstate&lowbar;mutex doesn&apos;t work because it is not locked at other times when the chainstate is in use&period;)

== Synopsis

Declared in `&lt;validation&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;guarded&lowbar;by(0x7f9513c487e8), guarded&lowbar;by(0x7f9502de9f88), guarded&lowbar;by(0x7f950b21c758), guarded&lowbar;by(0x7f9514bf6748)&rsqb;&rsqb;
std::vector&lt;std::unique&lowbar;ptr&lt;Chainstate&gt;&gt; m&lowbar;chainstates;
----


[.small]#Created with https://www.mrdocs.com[MrDocs]#
