Merge pull request #20 from UbimoLTD/patch-1

Don't call RAW_VLOG with locking vmodule_lock

SetVLOGLevel locks vmodule_lock however RAW_VLOG at the end also implicitly locks it via InitVLOG3__.
This causes deadlock/segfault.

fixes #29
This commit is contained in:
Fumitoshi Ukai 2015-08-06 17:09:02 +09:00
commit cd37eec302

View File

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