Update vlog_is_on.cc

SetVLOGLevel locks vmodule_lock however RAW_VLOG at the end also implicitly locks it via InitVLOG3__.

This causes deadlock/segfault.
This commit is contained in:
romange 2015-04-30 20:28:32 +03:00
parent 2a02db7aa5
commit 2c5038470b

View File

@ -162,6 +162,7 @@ int SetVLOGLevel(const char* module_pattern, int log_level) {
int result = FLAGS_v; int result = FLAGS_v;
int const pattern_len = strlen(module_pattern); int const pattern_len = strlen(module_pattern);
bool found = false; bool found = false;
{
MutexLock l(&vmodule_lock); // protect whole read-modify-write MutexLock l(&vmodule_lock); // protect whole read-modify-write
for (const VModuleInfo* info = vmodule_list; for (const VModuleInfo* info = vmodule_list;
info != NULL; info = info->next) { info != NULL; info = info->next) {
@ -186,6 +187,7 @@ int SetVLOGLevel(const char* module_pattern, int log_level) {
info->next = vmodule_list; info->next = vmodule_list;
vmodule_list = info; vmodule_list = info;
} }
}
RAW_VLOG(1, "Set VLOG level for \"%s\" to %d", module_pattern, log_level); RAW_VLOG(1, "Set VLOG level for \"%s\" to %d", module_pattern, log_level);
return result; return result;
} }