diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-02-17 17:00:12 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-02-17 17:01:40 +0300 |
commit | d81dd2da0fc6c6a02c5484f800345b4af97dbb9f (patch) | |
tree | cece55d9a8cbf4643952339de13b8250eaf13b67 /extern/gflags | |
parent | 157bc3dbbfa2da76ed212a6b8b6be45a87bb0f56 (diff) |
Fix/workaround static object initialization in gflags
Diffstat (limited to 'extern/gflags')
-rw-r--r-- | extern/gflags/src/gflags.cc | 12 |
1 files changed, 9 insertions, 3 deletions
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_; } |