RuntimeProfile::T* RuntimeProfile::NAME(\
const string&
name, TUnit::type unit,
const string& parent_counter_name) {\
DCHECK_EQ(is_averaged_profile_, false);\
lock_guard<mutex> l(counter_map_lock_);\
if (counter_map_.find(name) != counter_map_.end()) {\
return
reinterpret_cast<T*
>(counter_map_[
name]);\
}\
counter_map_.find(parent_counter_name) != counter_map_.end());\
T* counter = pool_->Add(new T(unit));\
counter_map_[
name] = counter;\
set<string>* child_counters =
\
FindOrInsert(&child_counter_map_, parent_counter_name, set<string>());\
child_counters->insert(name);\
return counter;\
}
static const string ROOT_COUNTER
V * FindOrInsert(std::map< K, V > *m, const K &key, const V &default_val)