From d81dd2da0fc6c6a02c5484f800345b4af97dbb9f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 17 Feb 2016 15:00:12 +0100 Subject: Fix/workaround static object initialization in gflags --- extern/gflags/src/gflags.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'extern') diff --git a/extern/gflags/src/gflags.cc b/extern/gflags/src/gflags.cc index a35bbfe6664..7abe1f70da3 100644 --- a/extern/gflags/src/gflags.cc +++ b/extern/gflags/src/gflags.cc @@ -881,9 +881,15 @@ FlagRegistry* FlagRegistry::global_registry_ = NULL; Mutex FlagRegistry::global_registry_lock_(Mutex::LINKER_INITIALIZED); FlagRegistry* FlagRegistry::GlobalRegistry() { - MutexLock acquire_lock(&global_registry_lock_); - if (!global_registry_) { - global_registry_ = new FlagRegistry; + if (GetArgvSum() != 0) { + MutexLock acquire_lock(&global_registry_lock_); + if (!global_registry_) { + global_registry_ = new FlagRegistry; + } + } else { + if (!global_registry_) { + global_registry_ = new FlagRegistry; + } } return global_registry_; } -- cgit v1.2.3