void read_children()
{
// If we're already initialized, we don't need to do any locking,
// so do this check here without locking.
if (initialized)
return;
lock (this) {
// We need to check this again after we acquired the thread
// lock to avoid a race condition.
if (initialized)
return;
foreach (CompilationUnit comp_unit in compile_units)
comp_unit.DieCompileUnit.ReadChildren ();
initialized = true;
}
}