In ASTUnit.h, there is a ConcurrencyState class which has the following comment;
/// \brief Allows us to assert that ASTUnit is not being used concurrently,
/// which is not supported.
///
/// Clients should create instances of the ConcurrencyCheck class whenever
/// using the ASTUnit in a way that isn’t intended to be concurrent, which is
/// just about any usage.
/// Becomes a noop in release mode; only useful for debug mode checking.
In ASTUnit.cpp, there is a function called cleanupOnDiskMapAtExit(), which has the following comment:
// Use the mutex because there can be an alive thread destroying an ASTUnit.
Can someone clarify the intended behavior here? These two comments seem to contradict each other.