| 217 | } |
| 218 | |
| 219 | static void TypeInfoTimerHandler() |
| 220 | { |
| 221 | std::unique_lock<std::mutex> lock(l_ObjectCountLock); |
| 222 | |
| 223 | typedef std::map<String, int>::value_type kv_pair; |
| 224 | for (kv_pair& kv : l_ObjectCounts) { |
| 225 | if (kv.second == 0) |
| 226 | continue; |
| 227 | |
| 228 | Log(LogInformation, "TypeInfo") |
| 229 | << kv.second << " " << kv.first << " objects"; |
| 230 | |
| 231 | kv.second = 0; |
| 232 | } |
| 233 | } |
| 234 | |
| 235 | INITIALIZE_ONCE([]() { |
| 236 | l_ObjectCountTimer = Timer::Create(); |